使用Ember.js,对于以下情况:
<form {{action 'save' on="submit"}}>
<button type="submit" data-source='X'>Do X</button>
<button type="submit" data-source='Y'>Do Y</button>
</form>
在save()事件中,如何确定单击了哪个按钮?
(我需要表单的方式,我也需要按钮[type = submit]。我知道我可以对按钮执行2个操作,但是我想要触发表单本机提交,如果唯一的方法是要有2个单独的动作,我只会失望地手动触发每个表单提交,但必须有一个更简单的方法)
答案 0 :(得分:1)
动作助手不会传递jQuery事件信息,但您可以使用视图的事件处理程序来访问它。例如,您可以定义一个提交事件处理程序,如:
App.MultiButtonForm = Ember.View.extend({
tagName: 'form',
submit: function(event) {
console.log('submit with: ', event);
event.preventDefault();
}
});
{{#view App.MultiButtonForm}}
<button type="submit" data-source='X'>Do X</button>
<button type="submit" data-source='Y'>Do Y</button>
{{/view}}
有关动作助手与视图事件处理程序
的讨论,请参阅https://github.com/emberjs/ember.js/issues/1684另请参阅此帖子,了解如何确定按下了哪个按钮:http://www.webmuse.co.uk/blog/using-forms-with-multiple-submit-buttons-and-jquery-events/