Javascript Ember.js TextField操作提交表单

Javascript Ember.js TextField操作提交表单,javascript,jquery,forms,ember.js,Javascript,Jquery,Forms,Ember.js,我有以下表格: <form class="form-horizontal" {{action "formSubmit"}}> <div class="form-group"> <label>User:</label> {{input type="text" value=user action="findUser"}} </div> <div class="form-group

我有以下表格:

<form class="form-horizontal" {{action "formSubmit"}}>
    <div class="form-group">
        <label>User:</label>
        {{input type="text" value=user action="findUser"}}
    </div>
    <div class="form-group">
        <label>Notes:</label>
        {{input type="text" value=notes}}
    </div>
    <button type="submit" class="btn btn-primary">Save</button>
</form>

用户:
{{input type=“text”value=user action=“findUser”}
笔记:
{{input type=“text”value=notes}
拯救
正如您所注意到的,我对该表单有两个操作:

  • 当我在用户输入字段中键入并按enter键时,它将触发
    findUser
    操作
  • 表单提交时,将调用
    formSubmit
    操作
  • 现在,问题来了。

    当我在用户文本字段中键入内容并按enter键时,它将触发
    findUser
    操作,但也会触发
    formSubmit
    。据我所知,这是表单通常的行为方式。在文本字段上按enter键时,它将提交表单

    这种行为有解决办法吗?当我在用户文本字段上按enter键时,我希望触发
    findUser
    操作,但不提交表单


    请提供帮助。

    一个解决方法是删除表单本身。您可以对按钮进行操作。您可能不得不牺牲一些与表单相关的功能,但仍然可以很好地工作。这是jsbin

    也许还有其他更好的方法

    <div class="form-group">
            <label>User:</label>
            {{input type="text" value=user action="findUser" bubbles=false}}
        </div>
        <div class="form-group">
            <label>Notes:</label>
            {{input type="text" value=notes}}
        </div>
        <button type="submit" class="btn btn-primary" {{action "formSubmit"}}>Save</button> 
    

    另一种允许使用表单的解决方法:

    只需将'onkeypress=“return event.keyCode!=13;”添加到表单元素中,并将{{action}放在按钮本身上:

    
    用户:
    {{input type=“text”value=user action=“findUser”}
    笔记:
    {{input type=“text”value=notes}
    拯救
    
    App.IndexController = Ember.Controller.extend({
      actions: {
        findUser: function(){
          console.log('Find User');
        },
        formSubmit: function(){
          console.log('Form Submit');
        }
      }
    });