Javascript jquery$.when.done()未触发
我不确定我是否正确地使用了Javascript jquery$.when.done()未触发,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不确定我是否正确地使用了$。但这正是我要做的。我试图触发两个ajax调用,当它们都完成时,我需要执行一些额外的工作,但是,我的.done方法从未触发。我的警报框从未被击中,但是,我的两个Ajax请求都在执行中 此时会触发警报“请勿点击此处”。我想阻止这种情况发生。我只需要在.done内触发它 function ValidateGeneralTab() { var isValid = false; $.when(SetGeneralTabIsValid(isValid), Po
$。但这正是我要做的。我试图触发两个ajax调用,当它们都完成时,我需要执行一些额外的工作,但是,我的.done
方法从未触发。我的警报框从未被击中,但是,我的两个Ajax请求都在执行中
此时会触发警报“请勿点击此处”。我想阻止这种情况发生。我只需要在.done
内触发它
function ValidateGeneralTab() {
var isValid = false;
$.when(SetGeneralTabIsValid(isValid), PostErrorMessages()).done(function ()
{
alert("Im here");
return isValid;
});
alert("DO NOT HIT HERE");
}
function SetGeneralTabIsValid(isValid)
{
var request = $.ajax({
type: "POST",
url: "NewIRA.aspx/SetGeneralTabIsValid",
data: "{'isValid': '" + isValid + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
},
error: function () {
}
});
return request;
}
function PostErrorMessages() {
var errorsCollection = ["Saab", "Volvo", "BMW"];
var request = $.ajax({
type: "POST",
url: ErrorMessagesUrl,
data: JSON.stringify(errorsCollection),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
},
error: function () {
}
});
return request;
}
警报(“请勿点击此处”)
将始终运行,因为AJAX是异步的。在error
函数中放入一些console.log()
语句,以确保所有操作都在实际运行。尝试从$选项中删除空的success
和error
函数。另外,在done()
函数中返回值不会从外部方法返回代码>从触发,考虑将它封装在<代码> >(false) BULD。看起来像您期望的<代码>返回<代码>内>代码> $。当.doe()<代码>返回到外部函数……它不会。如何使用验证GeneralTab()
?