jQuery AjaxForm插件必须提交两次

时间:2016-12-24 23:00:12

标签: submit ajaxform ajaxsubmit

我正在尝试使用ajaxForm插件通过ajax提交表单。我遇到的问题是我需要提交表单两次以实际提交表单。请参阅下面的代码,我感谢任何帮助。

const eventNames = ['a', 'b', 'c'];

this.on('*', () =>
  eventNames.forEach(event => this.emit(event))
);

我尝试将其更改为ajaxSubmit,然后添加e.preventDefault();但是当我尝试时,表格根本没有提交。

1 个答案:

答案 0 :(得分:0)

在您的代码中,您有多个错误

1)提交按钮并尝试ajax submit

使用类型按钮或链接 当您单击提交按钮时,浏览器会尝试自动发送表单,并且您正在运行js,但这不是阻止提交

2)使用alert代替jAlert

将警报更改为jAlert

3)此代码初始化执行ajax的观察者

 $('#send-form').ajaxForm(function() { 
      var currentAlert = $.jAlert('current');
      currentAlert.closeAlert();
      successAlert('Success!', 'The form has been submitted');
      $('button.submit-btn').attr('disabled', false);
    }); 

然后您在点击时添加它,但您必须在文档加载时添加它 所以这是代码

$( document ).ready(function() {

    $('#send-form').ajaxForm(function() { 
      var currentAlert = $.jAlert('current');
      currentAlert.closeAlert();
      successAlert('Success!', 'The form has been submitted');
      $('button.submit-btn').attr('disabled', false);
    }); 
});

$(document).on('click', 'input.submit-btn', function () {
    jAlert('Please wait...','Please wait...');
    setTimeout(function() {
    $('button.submit-btn').attr('disabled', true);
    }, 50)
});

这是HTML

 <form action="" method="post" id="send-form">
     <input type="button" class="submit-btn" name="send-modal-form" value="submit" />
 </form>