javascript - IE8 无法识别 Backbone.js 事件

标签 javascript internet-explorer backbone.js underscore.js

我在表单上有“提交”事件。在 IE8 中,如果我在不输入任何信息的情况下提交表单,只需单击提交按钮,它就会发布表单,并且它永远不会被 Backbone 中定义的事件捕获或处理。但是,如果我只是点击一个输入字段,然后点击提交,事件就会被处理。

主干事件是这样设置的:

events: {

'submit #form': 'submitForm',

        },
submitForm: function(e){
     e.preventDefault();
}

知道为什么会这样吗?

更新:这是一个表单示例:

<div id="form">
  <form action="/action" method="post">
  <input type="text" name="name" />
  <button type="submit" value="Submit"></button>
  </form>
</div>

它实际上只在 IE8 中,并且只有在提交之前没有先单击表单中的元素时才会出现。该事件在 FF、Chrome、IE9+ 中触发没有问题。但仅在 IE8 中,如果您只单击提交,不执行任何其他操作,则不会触发该事件。

最佳答案

某些事件不能使用此方法委托(delegate)。 'focus' 和 'blur' 不起作用,在 IE8 和更低版本中 'change'、'submit' 和 'reset' 也不起作用。它实际上在 annotated source of Backbone 中但出于某种原因不在 the documentation 中.

JQuery 的文档实际上指出 Backbone 使用的方法 ( $.delegate ) 现在已被 $.on 取代它能够处理这些类型的事件。

所以你的选择是:

  • 重载 Backbone.View.delegateEvents 以使用 $.on 而不是 $.delegate
  • 手动绑定(bind)事件,如 EndangeredMassa 所示。

关于javascript - IE8 无法识别 Backbone.js 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11588215/

相关文章:

javascript - 在 IE 中阻止脚本

javascript - backbone.js 中的动态 el 值

javascript - http ://0. 0.0.0 :4567 is not allowed by Access-Control-Allow-Origin. 与 Backbone 和 Firebase

javascript - 谷歌地图视差效果

javascript - 在 Javascript 中将 Font Awesome 附加到表格

javascript - 密码学家类型错误: First argument must be a string

backbone.js - 使用 Jasmine 模板测试 Backbone View 的最佳方法

javascript - nouislider 在某些事件中移动时消失

html - IE 条件不适用于 .js 和 .css

css - 是否可以使用 CSS 在 IE 中创建网格图像或错误图像?