jQuery表单提交,防止第一次提交后多次发送

jQuery form submit, prevent from sending multiple times after first submit

本文关键字:提交 第一次 表单提交 jQuery      更新时间:2023-09-26

我正在制作一个web应用程序,使用jquery提交请求一些数据,但我不希望人们在提交第一次后多次提交表单。因此,我希望在提交之后,下一次提交在几秒钟内什么都不做。

$("#updatestock_form").submit(function(e){
    // requesting my data..

}); 

我怎样才能做到这一点?

"所以我希望在提交之后,下一次提交在几秒钟内什么都不做。"

如果你想让用户的第二次和随后的提交尝试被忽略,直到过了一定的秒数,你可以用很多方法来做到这一点。这是我想到的第一个:

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秒后将标志更改回来,然后继续使用您现有的提交代码。

$("#updatestock_form").submit(function(e){
    $(this).unbind("submit")
    $("#submitButton").attr("disabled", "disabled")
});

非常简单。

你正在做一个ajax请求提交?因此,创建一些锁定变量var locked;,并在提交时将其设置为locked = true;,在ajax调用完成时将其重置为false。(sucess-condition)

在按钮的onclick事件中禁用按钮

$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); });

并在操作成功后删除disabled属性