Javascript 父操作防止在ember.js中调用submit操作

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,那个div有一个动作。div还有一个作为子级的表单标记。该表单标记有一个onsubmit操作。当我的div上有一个操作时,表单提交操作永远不会被调用。这是正确的吗


在上面的提琴中,尝试删除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

您可以在中找到有关此的更多信息

我希望有帮助