如果单击了按钮,如何停止向服务器发送数据?我不想要禁用=“禁用”响应(按钮是自定义的)。
我尝试将全局var button_clicked = FALSE;
设置为单击按钮时为true,之后在收到响应时再将其设置为false。但这不起作用,因为我的鼠标搞砸了,垃圾邮件点击速度非常快(虽然我只点击一次 - >这实际上帮助我看到提到的方法不是那么精确)。
是否有更好的方法来停止进程或禁用onClick上的DOM元素?也许禁用该事件? js或jquery的答案更可取。或者这可能无法在真正快速的请求中完成。我知道这取决于很多东西(比如用户的cpu)。欢迎任何评论或回答。也许每次点击页面都会让用户等待几毫秒?
答案 0 :(得分:1)
试试这个小构造函数:
function MyForm()
{
this.check = false;
this.form = function(){
var f = this;
$('#form').submit(function(e){
e.preventDefault
if( f.check === false )
{
f.check = true;
$.ajax({
...blah blah
success: function( data )
{
//if you want to let them send again, uncomment this next line
//f.check = false;
}
})
}
});
this.form();
}
$(document).ready(function(){
var my = new MyForm();
});
答案 1 :(得分:0)
如果您注册了一个事件监听器,那么您获得的Event对象将具有preventDefault()
方法。这样可以避免点击链接或发送提交的表单。
如果它是由事件处理程序触发的自定义操作,唯一的可能性是检查处理程序函数中的条件是否确实应该采取操作。然而,禁用按钮并不是那么糟糕,因为您需要通知用户不会发生任何事情。
答案 2 :(得分:0)
单击按钮时删除单击处理程序。准备好下次点击时再添加它。
button.onclick = null;