我有一个简短的表单,你可以在这里看到http://jsfiddle.net/azxpckg5/1/
我遇到了问题 - 重现它的方法是点击save
按钮。然后会出现另一个名为submit
的按钮。当用户点击它时 - 它会消失并且没问题。但是,当用户重复此过程时(再次点击save
并再次点击submit
- 他可以看到最后一次点击重复了两次。我相信错误可能在某处:
submitHandler: function (form) {
alert("here!");
$(".overlay-boxify2").toggleClass("open");
$('#submitcForm').click(function() {
//
$(".overlay-boxify2").toggleClass("open");
alert("hegdsgsd");
});
return false;
}
但说实话,我不知道如何修复它以及可能出现的问题。你能帮帮我吗?
答案 0 :(得分:2)
问题是因为您在每次提交表单时都会将另一个点击事件处理程序附加到#submitcForm
按钮(单击#saveBtn
时会发生这种情况。将点击处理程序移到validate()
调用,您的代码将按您的要求运行。
$('#invoiceForm').validate({
// settings...
});
$('#submitcForm').click(function () {
$(".overlay-boxify2").toggleClass("open");
});
答案 1 :(得分:-1)
使用.off()
阻止在按钮上附加多个click
eventListener
submitHandler: function (form) {
alert("here!");
$(".overlay-boxify2").toggleClass("open");
$('#submitcForm').off().click(function() { // see the use of .off()
$(".overlay-boxify2").toggleClass("open");
alert("hegdsgsd");
});
return false;
}