如何在jquery表单插件.ajaxSubmit上执行jqXHR.always?

时间:2014-10-08 05:45:14

标签: jquery jquery-plugins jquery-forms-plugin

这个有效:

    $.post('url', {
       ...
    }, function(resp) {
       ...
    }, 'json').always(function() {
       ...
    });

这个产生" Uncaught TypeError:undefined不是函数":

    $form.ajaxSubmit({
        url: url,
        type: 'post',
        data: {
            ...
        },
        dataType: 'json',
        beforeSubmit: function() {
            ...
        },
        error: function(jqXHR, exception) {
            ...
        },
        success: function(response, statusText, xhr, $form) {
            ...
        }
    }).always(function() {
            ...
    });

它要求我写更多关于我的代码,这很愚蠢,因为问题非常完整,写更多的单词不会让它更清晰。

1 个答案:

答案 0 :(得分:1)

.always()方法属于promise对象,ajaxSubmit()方法不返回promise,它返回调用它的jQuery对象。

您可以使用完整的回调

$form.ajaxSubmit({
    url: url,
    type: 'post',
    data: {
        //...
    },
    dataType: 'json',
    beforeSubmit: function () {
        // ...
    },
    error: function (jqXHR, exception) {
        // ...
    },
    success: function (response, statusText, xhr, $form) {
        // ...
    },
    complete: function () {
        console.log('completed')
    }
})