【发布时间】:2011-03-04 23:35:01
【问题描述】:
我有一个多次触发的 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;
});
};
我什至不确定如何调试它。任何建议表示赞赏...
【问题讨论】:
-
e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return false;太过分了。由于您使用的是 jQuery,因此您只需要执行e.preventDefault();即可(以及e.stopPropagation();以防您需要防止事件冒泡 - 但通常这不是必需的)
标签: javascript .net jquery asp.net asp.net-mvc