芒果小站

  1. 全球最具业界良心的主机 - Linode

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - Linode

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - Linode

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
14

Fuck IE!submit 事件不冒泡怎么办?

作者 芒果/分类 代码/发布于 2011-03-23 17:04

表单提交前要加一大堆条件判断,可以直接监听 submit 事件。

但是如果该表单是由 JS 创建出来的 DOM 元素,那就出问题了:在注册事件时 DOM 是不存在的!所以需要把事件在创建 DOM 之后再注册。

当然这不是最为关键的问题。YUI3 中提供了强大的 Y.delegate 方法,支持 click、focus、blur、mouseenter、mouseleave 等多种事件类型的事件代理。

问题的关键在于 IE 不支持 submit 事件冒泡啊:http://www.quirksmode.org/dom/events/submit.html

第一个想到的方案是,改变表单提交按钮的 type=”submit” 属性为 type=“button”,代理该按钮的 click 事件。但这样一来表单无法键盘 enter 提交了。于是:

饺子哥给的方案是:在 form 标签里写死 onsubmit 属性:

<form method="post" action="" onsubmit="doSubmitFunc();return false;">...</form>

还是觉得怪怪的,从来没敢那么写过啊~

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/fuck-ie-submit-can-not-propagation/" title="Fuck IE!submit 事件不冒泡怎么办?" rel="bookmark">Fuck IE!submit 事件不冒泡怎么办? | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 14 条群众意见

  1. 正邪 /2011-03-23 17:14

    不管肉饺子还是素饺子,可口的饺子就是好饺子。饺子哥V5! 回应

    #1
  2. toinka /2011-03-23 17:44

    现在我都不用IE了,我都是用firefox的,顺便也做做subvertandprofit的任务 回应

    #2
  3. YesCola /2011-03-24 00:48

    它要是敢不冒泡就打到丫冒泡为止! 回应

    #3
  4. jesse /2011-03-24 18:28

    没什么奇怪的,我就一直这样写,还有discuz也这么干的,如果页面是ajax加载的,最好是在html里写事件,否则,光是绑定事件的代码就够呛 回应

    #4
  5. 时时彩 /2011-03-26 15:21

    初次来到贵博,很不错! 回应

    #5
  6. WayJam /2011-03-27 15:49

    不想兼容IE了 回应

    #6
  7. 大尚网 /2011-03-27 20:52

    js好长一段时间都没用 了 回应

    #7
  8. 子猴 /2011-03-28 07:15

    先这么写死,onsubmit=”doSubmitFunc();return false;”,然后在方法里提交表单,我以前这么干过,,,, 回应

    #8
  9. 见天 /2011-03-28 21:32

    来学习了,ie6 太痛苦了,等着它慢慢退去,难了 回应

    #9
  10. 爱慕旗舰店 /2011-03-30 09:36

    我喜欢ie8,很不错 回应

    #10
  11. 天天在上网 /2011-04-23 18:28

    好久没有用它了 回应

    #11
  12. ?
    Fuck IE!submit 事件不冒泡怎么办? | zend实验室-java/php学习教程、web前端设计、网站建设、网页设计、网络SEO推广 /2011-05-03 23:03

    […] 转载至:Fuck IE!submit 事件不冒泡怎么办? | 芒果小站 分类: css, 其它 标签: 临时 5 个简单实用的 CSS 属性纯 CSS 实现文本渐变效果CSS 的外联,内联和嵌入芒果教你清除浮动CSS 有序列表 ol 和无序列表 ul用 JavaScript 实现 HTML 代码运行框你真的认识 window.location 吗?使用 <hr> 标签创建水平分隔线用 CSS 实现段落首行缩进YUI 2: Event Utility 评论 (0) Trackbacks (0) 发表评论 Trackback […] 回应

    #12
  13. airoschou /2011-10-17 17:40

    onClick=”document.getElementById(‘frmKokunaiSearch’).submit();return false;” 回应

    #13
  14. 痔疮的最佳治疗方法 /2011-10-24 14:47

    学习了!!好文章~~ 回应

    #14

下面我简单说几句