Javascript jQuery表单提交,防止在首次提交后多次发送
我正在制作一个Web应用程序,它使用jquery提交请求一些数据,但我不希望人们在第一次提交表单后多次提交表单。所以我想在一次提交之后,下一次提交在几秒钟内什么也不做Javascript jQuery表单提交,防止在首次提交后多次发送,javascript,jquery,submit,delay,Javascript,Jquery,Submit,Delay,我正在制作一个Web应用程序,它使用jquery提交请求一些数据,但我不希望人们在第一次提交表单后多次提交表单。所以我想在一次提交之后,下一次提交在几秒钟内什么也不做 $("#updatestock_form").submit(function(e){ // requesting my data.. }); 我怎样才能做到这一点 $("#updatestock_form").submit(function(e){ $(this).unbind("submit")
$("#updatestock_form").submit(function(e){
// requesting my data..
});
我怎样才能做到这一点
$("#updatestock_form").submit(function(e){
$(this).unbind("submit")
$("#submitButton").attr("disabled", "disabled")
});
非常简单。您正在进行ajax请求提交?因此,创建一些锁定变量
var locked
并将其设置为locked=true提交时编码>并在ajax调用完成时将其重置为false
。(成功条件)
“因此,我希望在提交后,下一次提交在几秒钟内不会执行任何操作。”
如果您的意思是希望用户的第二次和后续提交尝试被忽略,直到经过一定的秒数,那么您可以通过多种方式来完成。首先想到的是:
var allowSubmit = true;
$("#updatestock_form").submit(function(e){
if (!allowSubmit) return false;
allowSubmit = false;
setTimeout(function(){ allowSubmit = true; }, 5000);
// your existing submit code here
// requesting my data..
});
也就是说,有一个标志指示当前是否允许提交。在提交事件上,如果该标志为false,则立即返回false
以取消提交事件。否则(如果当前为true
)将标志设置为false
,设置超时以在5秒后更改标志,然后继续使用现有提交代码。单击按钮事件时禁用按钮
$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); });
并在成功操作后删除disabled属性您可以删除或禁用submit按钮,或者您可以使用标志检查表单是否已发送,并且在几秒钟内为setTimeout添加行
实际上这不起作用,您只需删除jQuery侦听器,不要阻止表单
提交给你,这就是我一直在寻找的!