日期:2014-05-20  浏览次数:20448 次

怎么样控制Button不能连续点二次
一个Button点击一次可以执行相应的功能,并且功能没执行完的时候会弹出一个层做的进度条来覆盖按钮,这个时候是不能点第二次的.

但目前的情况是用户非常快的双击按钮   按钮事件就相应两次  

有没有什么好的办法来控制一下?请问

加全局静态变量、点一次变灰、等等方法请不要提出来了。

------解决方案--------------------
你在执行那个功能里加锁,如果功能没完成就直接false忽略这次的提交
------解决方案--------------------
在点击事件里要执行的事件前把按钮isenable后执行,等执行后再isenable回来
------解决方案--------------------
觉得单独使用JavaScript来控制,并不是最好的处理办法,
除了使用Javascript方法之外,真正能使用不多次执行两次代码的,
还是在服务器端设置一个变量吧。比如在Button的OnClick代码做如下操作:
if( Session[ "time "] == null )
{
// TODO:执行onclick代码
Session[ "time "] = 1;
}
else
{
Response.Write( "靠,还想提交? ");
}

使用这个办法,有一个副作用,因为你不能进行第二次提交操作了。
所以你需要在Page_OnLoad事件代码中加入这样的代码,防止这个问题:
Session[ "time "] = null;
------解决方案--------------------
最好是采用vengair的方法,用javascript在客户端处理button的disable属性

只有这样才能避免客户端连续点击多次的情况

------解决方案--------------------
加全局静态变量、点一次变灰、等等方法请不要提出来了。
---------------------------------------------------
难道还有其他的方法能解决?期待中。。。。
------解决方案--------------------


还是用脚本在客户端响应button的各种鼠标事件

判断是否在短时间连续点击了多次,只有第一次继续处理回发,其他情况则return false终止回发
------解决方案--------------------
点了一次后用代码将鼠标移走.
------解决方案--------------------
<td align= "center " height= "39 "> <input type= "image " name= "btnSubmit " id= "btnSubmit " src= "..\Images\Buttons\update.gif " onclick= "javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;btnSubmit&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false)) " this.disabled=true style= "border-width:0px; " /> </td>
------解决方案--------------------
http://community.csdn.net/Expert/topic/5197/5197951.xml?temp=.7782404
------解决方案--------------------
点了一次后用代码将鼠标移走.
----------------------------
听起来真的是最好的方法了,
可是能操纵鼠标吗?

点了两次第二次就应该把第一次的关掉再重新执行,因为用户可能会很无聊,特别是网速慢的时候谁会知道他到底会点击多少下!
我烦的时候点几百下都有可能,你怎么判断?