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

AJAX code attached to submit event not working

本文关键字:AJAX 代码 不起作用 事件 提交      更新时间:2023-09-26

我无法在 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 {
        }
    });
}

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

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

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

调整一下你的代码:

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;        
});