在IE8中无法识别Backbone.js事件

dzm*_*dzm 5 javascript internet-explorer backbone.js underscore.js

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

骨干事件的设置如下:

events: {

'submit #form': 'submitForm',

        },
submitForm: function(e){
     e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?

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

<div id="form">
  <form action="/action" method="post">
  <input type="text" name="name" />
  <button type="submit" value="Submit"></button>
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

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

End*_*ssa 0

我相信这里的问题是在 IE9 之前,提交事件不会在 DOM 中冒泡。在您的示例中,您在包含提交的表单的 div 上注册事件。您可能需要在渲染后专门处理表单的提交事件,而不是依赖主干的事件。

render: function(){
  // render content
  $el.find('form').on('submit', submitForm);
},

submitForm: function(){ ... }
Run Code Online (Sandbox Code Playgroud)

不过,我不确定如果您首先将光标放在表单的元素中,为什么它会起作用。