Javascript 父操作防止在ember.js中调用submit操作
我有一个div,那个div有一个动作。div还有一个作为子级的表单标记。该表单标记有一个onsubmit操作。当我的div上有一个操作时,表单提交操作永远不会被调用。这是正确的吗Javascript 父操作防止在ember.js中调用submit操作,javascript,forms,ember.js,action,Javascript,Forms,Ember.js,Action,我有一个div,那个div有一个动作。div还有一个作为子级的表单标记。该表单标记有一个onsubmit操作。当我的div上有一个操作时,表单提交操作永远不会被调用。这是正确的吗 在上面的提琴中,尝试删除div的操作,然后表单提交操作将正常工作。如何确保这两个操作不仅仅是父操作。默认情况下,操作助手将调用事件#preventDefault,因此当您单击submit按钮时,执行divClick,调用preventDefault,因此不会调用formSubmit。要避免这种情况,您可以使用选项pr
在上面的提琴中,尝试删除div的操作,然后表单提交操作将正常工作。如何确保这两个操作不仅仅是父操作。默认情况下,操作助手将调用
事件#preventDefault
,因此当您单击submit按钮时,执行divClick
,调用preventDefault,因此不会调用formSubmit
。要避免这种情况,您可以使用选项preventDefault=false
如{{action”divClick“preventDefault=false}>
。
在此之后,您会注意到,如果您单击submit按钮,则会触发divClick
和formSubmit
,这是因为单击事件会从按钮到div冒泡,如果您不希望出现这种行为,可以在submit按钮中使用bubbles=false
,如下
这是最后的代码
<div id="my-div" {{ action "divClick" preventDefault=false}}>
Hello World
<form {{action "formSubmit" on="submit" }}>
<input type="submit" value="submit" {{action "formSubmit" bubbles=false}}>
</form>
</div>
你好,世界
以及更新的jsbin
您可以在中找到有关此的更多信息
我希望有帮助