我有“a”元素作为按钮服务器。它没有href属性。
我正在使用jQuery来实现非常简单的事情:点击启动ajax请求并防止进一步点击。 ajax完成后,启用单击。我不使用表单或输入按钮。
var contact= {
send: function() {
$.ajax({
type: "POST",
url: "ws/ContactService.asmx/SendEmail",
data: '{"fromEmail":"' + $("#email").val() + '", "fromName":"' + $('#name').val() + '", "subject":"' + $('#subject').val() + '", "message":"' + $('#message').val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function() {
alert("Error");
},
success: function(msg) {
alert(msg.d);
},
complete: function() {
$("#send").text("Send");
}
});
}
};
$(document).ready(function() {
$("#send").("click", function() {
$("#send").text("Sending...");
contact.send();
});
}
);
这样可以正常工作,除了我可以根据需要多次点击发送,每次点击都会产生新的ajax请求。在ajax请求进行过程中如何防止点击“a”元素?
答案 0 :(得分:1)
您可以使用以下内容:
var contact = {
inprogress: false,
send: function() {
if (contact.inprogress)
return;
contact.inprogress = true;
$.ajax({
...
complete: function() {
$("#send").text("Send");
contact.inprogress = false;
}
});
}
};
答案 1 :(得分:0)
使用one of these techniques,在ajax调用返回时设置回链接。
答案 2 :(得分:0)
或者将async设置为false,这将冻结页面直到请求完成