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

标签 javascript jquery submit delay

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

$("#updatestock_form").submit(function(e){

    // requesting my data..


}); 

我怎样才能做到这一点?

最佳答案

"So i want after a submit, that the next submit does nothing for a few seconds."

如果您的意思是您希望忽略用户的第二次和后续提交尝试,直到经过一定秒数后,您可以通过多种方式实现。这是第一个想到的:

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 以取消提交事件。否则(如果当前为 true)将标志设置为 false,设置超时以在 5 秒后更改标志,然后继续您现有的提交代码。

关于javascript - jQuery表单提交,防止第一次提交后多次发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949557/

相关文章:

javascript - 如何使用 javascript 在表单中只接受 15 个字符?

javascript - 在任何情况下检测值变化,jQuery

javascript - Firefox 和 Chrome 中未触发窗口 popstate 事件

javascript - 阻止 jQuery 调用下一个事件

javascript - HTML 表格解决方案通过增加表格宽度来限制行或单元格的最大高度,Javascript

javascript - 如何创建一个带有延迟/超时的 JavaScript 书签?

javascript - 单击时组合两组 float

jquery - Select2 重置为占位符

javascript - Jquery 提交时不循环

ruby-on-rails - 用 rails 中的字形替换提交按钮