使用 e.preventDefault() 提交表单

Submit form with e.preventDefault()

本文关键字:提交 表单 preventDefault 使用      更新时间:2023-09-26

我将如何继续提交e.preventDefault()被jQuery截获的表单?显然,如果我只是打电话给$(form).submit(),它不会提交.下面是我当前脚本的示例。

$(form).submit(function (e) {
    e.preventDefault();
    // Code...
    if (true) {
        $(form).submit();
    } else {
        // Code...
    }
});

因为通过调用 jQuery submit 方法会导致对事件处理程序的递归调用(jQuery submit 方法将在调用 prevent 默认值的地方再次调用处理程序,从而阻止默认操作),相反,您可以只调用 form 元素的 submit 方法,这样事件处理程序就不会再次被调用

$(form).submit(function(e) {
  e.preventDefault();
  var self = this;
  // Code...
  if (true) {
    self.submit();
  } else {
    // Code...
  }
});

改为调用本机 DOM 方法:

form.submit();

这不会触发submit jQuery 方法绑定的事件。