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中,如果您只是单击"提交"而不执行任何其他操作,则不会触发该事件.
我相信这里的问题是在 IE9 之前,提交事件不会在 DOM 中冒泡。在您的示例中,您在包含提交的表单的 div 上注册事件。您可能需要在渲染后专门处理表单的提交事件,而不是依赖主干的事件。
render: function(){
// render content
$el.find('form').on('submit', submitForm);
},
submitForm: function(){ ... }
Run Code Online (Sandbox Code Playgroud)
不过,我不确定如果您首先将光标放在表单的元素中,为什么它会起作用。
| 归档时间: |
|
| 查看次数: |
4106 次 |
| 最近记录: |