Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery$.when.done()未触发_Javascript_Jquery_Ajax - Fatal编程技术网

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()