我正试图在ajax调用正在进行时取消提交表单的能力(这是一个很长的查询,我不希望它在最初制作时再次提交。)但我似乎不正确地附上它。
$(function(){
$("body").on("click", "#process", function(){
submit_form();
});
$("body").on("ajaxStart", "*", function(){
$("body").off("click", "#process", submit_form);
alert("test");
var div = $("<div>", {
id: "loading",
html: "Working"
}).prependTo("body");
});
$("body").on("ajaxStop", "*", function(){
alert("done");
$("#loading").remove();
});
});
我没有看到div被附加或警报被触发。我觉得*
语句中的on()
选择器可能存在问题。我不知道。我尝试将ajaxStart与on
相关联,以便可以删除动态添加的$("#loading")
。
答案 0 :(得分:0)
我会更多地设置变量以允许/禁止AJAX调用:
var processing = false;
$('form').on('submit', function(e){
e.preventDefault();
if(processing === false){
processing = true;
// allow AJAX here
$.ajax({
url: 'sample.com/process',
type: 'POST',
complete: function(){
processing = false;
}
});
}
});