【发布时间】:2018-12-19 11:35:00
【问题描述】:
如果我单击一次提交按钮,那么 AJAX 调用只会执行一次。太棒了。
问题是如果我不刷新页面并第二次点击提交按钮,那么AJAX调用会执行两次。如果我在不刷新页面的情况下第三次单击该按钮,则会执行三次 AJAX 调用。
我的代码有什么问题?我希望在单击“提交”按钮时只执行一次 AJAX 调用。
<form id="myForm">
<div class="modal-dialog" role="document">
<input type="hidden" name="buttonId" id="buttonId">
<div class="modal-content">
<div class="modal-body">
<div class="input-group">
<span id="commspan" class="input-group-addon">Comment</span>
<input type="text" name="queuqOther" id="queuqOther" class="form-control">
</div>
</div>
<div class="modal-footer">
<button type="button" id="btnPause" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</form>
$('#btnPause').on('click', function() {
var form = $("#myForm");
form.validate();
if (form.valid()) {
$.ajax({
async: true,
crossDomain: true,
url: "http://localhost/postdata",
xhrFields: {
withCredentials: true
},
success: function(data) {
console.log(data);
}
});
}
});
【问题讨论】:
-
$('#btnPause').off().on('click'...你每次都在附加一个新的处理程序。 -
您所显示的代码没有附加多个事件处理程序,所以我不确定人们为什么建议
off()。 AJAX 返回时是否调用了其他逻辑,因为此代码不会导致您描述的行为
标签: javascript jquery ajax html