javascript - 父操作阻止在 ember.js 中调用提交操作

标签 javascript forms ember.js action

我有一个div。该 div 有一个操作。 div 也有一个 form 标签作为子标签。该表单标签有一个提交操作。虽然我的 div 上有一个操作,但表单提交操作永远不会被调用。这是正确的吗?

http://emberjs.jsbin.com/jeyaxodugi/1/edit?html,js,console,output

在上面的 fiddle 中尝试删除 div 的操作,然后表单提交操作就可以正常工作。我如何确保这两个操作都被调用而不仅仅是父操作。

最佳答案

默认情况下,操作助手将调用 Event#preventDefault因此,当您单击提交按钮时,divClick执行后,将调用 PreventDefault,结果 formSubmit不会被调用。为了避免这种情况,您可以使用选项 preventDefault=false喜欢 {{ action "divClick" preventDefault=false}}> 。 之后您会注意到 divClickformSubmit如果您单击提交按钮,则会触发,这是因为单击事件从按钮冒泡到 div,如果您不希望出现此行为,可以使用 bubbles=false在您的提交按钮中,如下所示 <input type="submit" value="submit" {{action "formSubmit" 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 http://emberjs.jsbin.com/doroqocafu/1/edit?html,js,output

您可以在action helper docs中找到更多相关信息。

希望对你有帮助

关于javascript - 父操作阻止在 ember.js 中调用提交操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28451449/

相关文章:

javascript - 让 Laravel 应用程序既为基于浏览器的应用程序提供服务,又充当 iPhone 和 Android 应用程序的 API 的最佳实践是什么?

model-view-controller - Mvc前端和Mvc后端: wrong architecture?

javascript - 如何验证 4 位美国邮政编码?

javascript - 无法将 javascript 添加到 chrome 扩展 html

Django m2m表单保存 "through "表

javascript - 在 ember-simple-auth 中使浏览器关闭时的 session 无效?

javascript - 在循环中创建的 jQuery 事件处理程序

javascript - 如何获取 Map 函数的下一个元素?

database - Django 表单我无法保存图片文件

javascript - jquery .val() 返回未定义