1

使用 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() 事件中,如何确定单击了哪个按钮?

(我需要按原样的表单,我也需要 button[type=submit]。我知道我可以对按钮执行 2 个操作,但我想触发表单本机提交,如果唯一的方法是2个单独的动作,我只是失望地手动触发每个动作的表单提交,但必须有一个更简单的方法)

4

1 回答 1

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/

于 2013-08-24T05:36:03.527 回答