尊重jQuery.submit中的常规onsubmit处理程序

时间:2010-05-11 08:31:31

标签: javascript jquery forms submit form-submit

我想要一个jQuery表单提交处理程序来尊重任何以前的提交处理程序,包括添加了onsubmit的处理程序。

我正在尝试检测前一个处理程序的返回值但似乎无法执行此操作:

<form><input type="submit" /></form>
<script type="text/javascript">
$('form')[0].onsubmit = function() { return false; }; // called first
$('form').submit(function(e) {
  console.log(e.result); // undefined
  console.log(e.isDefaultPrevented()); // false
  console.log(e.isPropagationStopped()); // false
  console.log(e.isImmediatePropagationStopped()); // false
});
</script>

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

我发现了一种非jQuery方法:

var form = $('form')[0];
var old_onsubmit = form.onsubmit;
form.onsubmit = function() {
  if ($.isFunction(old_onsubmit)) {
    if (old_onsubmit() === false) {
      console.log("false");
      return false;
    }
  }
  console.log("true");
  return true;
}

但我更喜欢从jQuery绑定的提交处理程序

中检测到这一点