我想防止多次提交,如果有人点击提交按钮多次之一。unbind
或undelgate
在这种情况下如何调用我的自定义函数do_some_stuff
,它只发生一次,因为我尝试了一些jquery方法,但我认为我做错了什么。谢谢
$(function() {
$('div.ajax').delegate('form button', 'click', function(e) {
$(this).do_some_stuff();
e.preventDefault();
});
});
9条答案
按热度按时间yvfmudvl1#
JQuery中不建议使用绑定和取消绑定。
从jQuery 1.7开始,
.on()
方法是将事件处理程序附加到文档的首选方法。http://api.jquery.com/on/
为了回答您关于多次提交的问题,JQuery 1.7中的另一个新功能是
.one()
处理程序,它将事件处理程序附加到对象,但只允许它被触发一次,这将允许您防止多次提交。例如:
注意我绑定的是表单提交事件,而不是按钮单击事件。
qncylg1j2#
正如cHao所指出的,有两种方法可以做到这一点。
或
wwtsj6pe3#
当你点击这个按钮在这个功能中添加属性(禁用)这将使这个按钮不活动.
应防止多次提交
yuvru6vn4#
如果你的用户坚持要一直有一个活动的提交按钮,你可以使用一个变量来跟踪进度。
fxnxkyjh5#
如果您使用ASP .NETMVCDataAnnotations进行客户端验证,您必须首先验证表单-
dgiusagp6#
d7v8vwbk7#
这在提交时起作用
ubof19bj8#
在我的例子中,one()事件没有阻止多个提交。
使用了以下代码:
(Visual Studio 2017,MVC项目,Jquery 3.1.1)
nfeuvbwi9#
这对我有用。
el.detail
包含点击计数。任何大于1的值都将被忽略。