如何使用jQuery $ .ajax函数来停止或允许表单提交?

Sha*_*oon 7 ajax jquery

$('#post_form').submit(function() {
    $("#ajax_bar_loader").show();
    $.ajax({
        url: 'add.html',
        data: $('#post_form').serialize(),
        dataType: 'json',
        type: 'post',
        success: function( result ) {
            retVal = formCheck( result );
        }
    });

    return false;
});
Run Code Online (Sandbox Code Playgroud)

这就是我的代码看起来像而不是"返回false",如果"result"中包含的数据说明,我想允许它.我怎么能做到这一点?

Nic*_*ver 3

你可以这样做:

$.ajax({
    url: 'add.html',
    data: $('#post_form').serialize(),
    dataType: 'json',
    type: 'post',
    success: function( result ) {
        retVal = formCheck( result );
        if(retVal)
          $('#post_form').unbind('submit').submit();
        else
          alert('Error with your form! Oh crap!');
    }
});
Run Code Online (Sandbox Code Playgroud)

由于您要回发并离开,因此如果成功,这只会解除绑定此处理程序,并让提交在调用它时正常发生,因此代码不会运行并再次检查,它只是提交。