我遇到了
JQuery(最新)的ajaxComplete()函数的问题.
这是场景:
表单显示在灯箱中,以允许用户输入送货地址.
该表单的提交按钮绑定到脚本的ajaxComplete()部分中的函数(因为表单本身是使用Ajax加载的).表单数据也通过Ajax发送到服务器.如果用户输入的数据不完整/无效,则会显示错误消息,用户可以再次输入.问题是,每次执行时,.done()Ajax函数都会以指数方式执行多次:第一次,然后是两次,然后是4次,等等.
我想这是因为每次进行Ajax调用并完成(如表单提交),事件第二次被绑定,然后这两个事件再次绑定,使其成为4个:-(
这是一段代码片段:
$(document).ajaxComplete(function() {
$('#frm_create_address').submit(function(event) {
var formData = $('#frm_create_address').serialize();
$.ajax({
type : 'POST',url : '/ajax_results.asp?doIT=checkoutCreateAddress',data : formData,dataType : 'text',encode : true
})
.done(function(data) {
alert("Answer: " + data);
})
.fail(function(jqXHR,textStatus) {
alert("error: " + textStatus);
});
return false;
});
});
我在这里失去了…什么是防止多次触发.done()函数的最佳方法?
实际上更好的问题是:什么是阻止提交事件的多重绑定的最佳方法: – /
在此先感谢您的帮助!
克里斯