我正在制作一个使用 jquery 提交来请求一些数据的 web 应用程序,但我不希望人们在第一次提交后多次提交表单。所以我希望在提交后,下一个提交几秒钟内什么都不做。
$("#updatestock_form").submit(function(e){
// requesting my data..
});
我怎样才能做到这一点?
我正在制作一个使用 jquery 提交来请求一些数据的 web 应用程序,但我不希望人们在第一次提交后多次提交表单。所以我希望在提交后,下一个提交几秒钟内什么都不做。
$("#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
立即返回以取消提交事件。否则(如果当前是true
)将标志设置为false
,设置超时以在 5 秒后将标志改回,然后继续使用现有的提交代码。
$("#updatestock_form").submit(function(e){
$(this).unbind("submit")
$("#submitButton").attr("disabled", "disabled")
});
很简单。
你正在做一个ajax请求提交吗?因此,创建一些锁定变量var locked;
并将其设置为locked = true;
提交时并将其重置为false
ajax 调用完成时。(成功条件)
在按钮的 onclick 事件上禁用按钮
$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); });
并在成功操作后删除禁用属性