CHtml::linkButton 和 CHtml::link怎么防止2次提交?

怎样添加js,设置link点击后无效。

有一个很笨的方法:




<a href="http://www.baidu.com" id="clickOnce">tset</a>

<script type="text/javascript">

$("#clickOnce").click(function() {

   $(this).attr("href", "####");

});

</script>



这不是 CHtml的方法啊。

所谓的CHtml方法是指什么?这样?




CHtml::link(

    "TestLink",

    "http://www.baidu.com",

    array(

        "onclick"=>"this.href='####'",

    )

);



例如:

echo CHtml::linkButton(‘点击’,array(‘submit’=>’’,‘params’=>array(‘command’=>‘attendance’,‘frequencySectionId’=>11)))

[color="#FF0000"]这样可以解决,但也太不科学了。[/color]哪个有更好的做法?

echo CHtml::linkButton(‘点击’,array(‘onclick’=>"$(‘body’).undelegate(’#yt0’,‘click’);",‘submit’=>’’,‘params’=>array(‘command’=>‘attendance’,‘frequencySectionId’=>11)))

改进一下

echo CHtml::linkButton(‘点击’,array(‘id’=>‘xx’,‘onclick’=>"$(‘body’).undelegate(’#xx’,‘click’);",‘submit’=>’’,‘params’=>array(‘command’=>‘attendance’,‘frequencySectionId’=>11)))

我觉得让按钮变灰失效就行,用户也知道不能点了,否则他还点啊点的,多浪费鼠标

A变灰也能点,和button不一样。有些入门级朋友 把双击当单击用。结果就两条记录了。

防止二次提交controller里有个refresh方法。

在处理结束前添加 $this->refresh();

to prevent multi-submit, the way should like this:

$(‘a.class’).click(function(event) {

// prevent a.href’s summit

event.preventDefault();

ahref = $(this).attr(‘href’);

// here you can add as many as functions you want this click do. like:

// $.ajax();

// $.load();

// $.get();

// $.post();

// $(this).css().animate()…

// and finally, sumbit the default

$.get(ahref, callback);

//return false is a must.

return false;

}