Yii2-beforeSubmit ajax返回值

时间:2018-08-14 22:40:54

标签: jquery ajax yii yii2

我正在beforeSubmit()函数中进行AJAX调用,如下所示:

$('#register-form').on('beforeSubmit', function(event) {
    $.ajax({
        url: url,
        success: function(response) {
            return response.status; // boolean
        }
    });
});

我希望AJAX成功函数(truefalse)的结果确定beforeSubmit()函数的返回值。

我意识到您无法在ajax成功内返回,我也知道一个可能的解决方案是在我的AJAX调用中设置async: false,但是我知道不建议这样做,所以宁愿尝试其他解决方案。

我已尝试实现这些帖子中详细介绍的“回调”功能:

ajax return true/false - I have implemented a callback

jQuery: Return data after ajax call success

但是我似乎仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

我已经解决了以下问题:

$('#register-form').on('beforeSubmit', function(event) {
    var form = $(this);

    if (!form.hasClass('complete')) {
        $.ajax({
            url: url,
            success: function(response) {
                if (response.status == true) {
                    form.addClass('complete').submit();
                }
            }
        });

        return false;
    }
});

因此,beforeSubmit()函数仅在表单不具有“ complete”类时才返回false。如果是这样,它将继续默认表单提交。