0

我有代码:

$this.ajaxForm({
    beforeSend: function (form) {
        $('input[name *= "XXX"]').each(function (index) {
            $.GetJSON({
                url: "XXX",
                data: {
                    XXX: $(this).val()
                }
                success: function(json) {
                    if (json.error)
                    {
                    }
                }
            });
        }
        anotheraction();
    }
});

我想停止执行脚本的下一部分(在循环中或在“另一个动作”之前),直到前一个 Ajax 结束(当然如果是 json.error)。

编辑:我想打破一个循环(当我有 json.error 时)并在 beforeSend 中返回 false

Edit2:理论上 async:false 应该有帮助,但也不起作用。

有可能的?

4

2 回答 2

2

如果您想延迟操作直到成功调用服务器,只需将其包含在成功回调中:

$.GetJSON({
    url: "XXX",
    data: {
        XXX: $(this).val()
    }
    success: function(json) {
        anotheraction();
        ...
    }
});
于 2012-10-16T11:23:16.860 回答
0

是的,只需使用return关键字即可

于 2012-10-16T11:23:38.053 回答