【问题标题】:Listening to all form submit events监听所有表单提交事件
【发布时间】:2013-03-07 00:35:44
【问题描述】:

jQuery 的on('submit', ...) 正确地拾取原生表单提交,即当按下提交按钮时,但是它不能很好地处理 JS 表单提交,至少在 FF&IE 上是这样

考虑到这一点,如何“正确”添加提交侦听器?通过更改 HTMLFormElement.prototype.submit 的行为来修改 DOM 原型在 IE7 上不起作用

fiddled

【问题讨论】:

  • 原生 js .submit() 不触发 onsubmit 处理程序有一个很好的理由 - 即您可以(并且通常会)非常容易地形成提交处理程序提交的无限递归handler-submit.... 如果您需要从 js 运行表单的处理程序,请使用例如 $("#myform").trigger('submit').
  • @Beetroot-Beetroot:哦,这很明显,因为你已经提到了 :) 谢谢,有道理
  • 根据您要执行的操作,您有时可以捕获window.onpageunload 进行一些基本的清理工作。
  • @JeremyJStarcher:我正在尝试在提交之前向表单中添加一些数据 - 不适用于 onpageunload,而且它的跨浏览器支持有点古怪

标签: javascript jquery


【解决方案1】:

使用 jQuery .submit() 提交表单将解决问题。

$('#someForm').submit();

jsFiddle Demo

如果你真的坚持使用原生 DOM .submit(),当然也无济于事。

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多