我有一个多次触发的form.submit。第一次,没关系。收到回复后,如果再次单击“提交”按钮,则会触发两次。然后三次。似乎每次响应都返回时,提交会在下次单击按钮时触发额外的时间。
RetrievePassword = function () {
var $popup = $("#fancybox-outer");
var form = $popup.find("form");
form.submit(function (e) {
var data = form.serialize();
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: data,
dataType: "json",
success: function (response) {
if (response.Success) {
$.fancybox.close();
}
alert(response.Message);
},
error: function (xhr, status, error) {
alert(xhr.statusText);
}
});
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
return false;
});
};
我甚至不确定如何调试它。任何建议都表示赞赏......
答案 0 :(得分:1)
我假设您多次致电RetrievePassword()
。每次调用它时,都会注册另一个onsubmit
处理程序。
解决方案是只注册处理程序一次。