如何从jQuery Ajax的根函数返回false

时间:2013-06-23 14:33:45

标签: javascript jquery ajax asp.net-mvc

我正在我的BeginForm的onBegin函数上发送ajax请求,我想在data.success为假时停止后续步骤。

但是从success方法返回false,而不是从onBegin返回它。如何使这个异步的东西工作?如果data.success为假,我想在onBegin函数中停止所有循环。

function onBegin() {
        $("#spMessage").html("Processing...");
        $.ajax({
            url: '@Url.Action("test")',
            type: "POST"
            success: function (data) {
                if (!data.success) {
                    alert("Sorry!");
                    /*Here I want to return false not from success function, but from OnBegin function*/
                    return false;
                }
            }
        });
    }

1 个答案:

答案 0 :(得分:2)

您将失去异步请求的所有功能,但您可以通过添加选项async : false来指定必须同步进行AJAX请求

function onBegin() {
        $("#spMessage").html("Processing...");
        $.ajax({
            url: '@Url.Action("test")',
            type: "POST",
            async : false,
            success: function (data) {
                if (!data.success) {
                    alert("Sorry!");
                    //onBegin function will return false
                    return false; 
                }
                else
                {
                    //onBegin function will return true
                    return true; 
                }
            }
        });
    }