0

我有一个表格:

<form class="form-inline" {{action "doSomething" on="submit"}}>
    <form-field/>
    <form-field/>
    <form-field/>
    <button class="btn btn-success" type="submit" {{bind-attr disabled=disableSubmit}}>Reset Password</button>
    <button class="btn btn-default" type="cancel" {{action "cancel" on="click"}}>Cancel</button>
</form>

我希望doSomething当用户在表单中的某处按下输入(或单击提交按钮)时调用控制器的方法。如果某些表单字段的先决条件未得到满足,这在我引入“禁用”提交按钮的功能之前按预期工作。在这些情况下,它会cancel莫名其妙地在控制器上执行该方法。

有人可以帮忙吗?

~~~

ps 用于 Bootstrap/JS/HTML 社区……{{something}}标记是基于 Ember 的。希望这不会让你失去太多的气味,因为它更多地是解决问题(我认为)的一个考虑因素。

4

1 回答 1

1

您可以在视图中捕获事件keyDown并获取事件的 keycode 并与enter keycode 13进行比较

在视图中,您应该实现类似此代码的内容

keyDown: function(e) {
  if (e.keycode == 13 && this.get('controller.disableSubmit'))){
     e.preventDefault(); 
  }
}
于 2013-10-16T12:14:12.267 回答