附加的AJAX代码提交事件不起作用

时间:2014-12-17 12:04:20

标签: javascript jquery

我无法在ajax成功函数中提交表单:

$('#formId').on('submit', function (e) { 
    e.preventDefault(); 
});

$('#submit').on('click', this.doStuff);

doStuff: function () {
    $.get('url').done(function (data) {
        if (data.IsSuccessful) {
            $('#formId').off('submit');
            $('#formId').submit();
        }
        else {
        }
    });
}

奇怪的是它会在第二次触发此事件时进行提交,但不是第一次触发,它将独立提交这两行代码,但不在get内部(调试器确实触及它)。如何根据ajax调用成功提交表单?

2 个答案:

答案 0 :(得分:4)

e.preventDefault();方法阻止表单过去并重定向到ajax调用。试试这个:

 $('#submit').click(function (e) {
    e.preventDefault();
    $.get('url').done(function (data) {
                if (data.IsSuccessful) {
                    $('#formId').submit();
                }
                else {

                }
        });
     });

答案 1 :(得分:0)

稍微调整一下你的代码:

submit事件将处理所有逻辑。因此,无论您的表单如何提交,都会触发该事件。

var check = false;
$('#formId').on('submit', function (e) { 
    return check;
});

$('#submit').on('click', function(){
   $.get('url').done(function (data) {
       if (data.IsSuccessful) {
          check = true;
          $('#formId').submit();
       }
       else
       {
         check = false;
       }
    });
    return false;        
});