-1

我正在 BeginForm 的 onBegin 函数上发送 ajax 请求,并且我想在data.success为 false 时停止下一步。

但是从方法返回 false,而success不是从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;
                }
            }
        });
    }
4

1 回答 1

2

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

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; 
                }
            }
        });
    }
于 2013-06-23T14:45:34.683 回答