找出在多按钮表单中单击了哪个按钮[type = submit]

时间:2013-08-24 04:56:25

标签: ember.js

使用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个单独的动作,我只会失望地手动触发每个表单提交,但必须有一个更简单的方法)

1 个答案:

答案 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/