2015-06-01 31 views
1

我在AngularJS documentation中遵循表单提交准则,但是当我按下Enter键时,表单未提交。我需要做些什么来完成这项工作?这是我的代码。最重要的一点是,我使用ng-click指定提交按钮的处理程序:Angular UI和Angular UI Bootstap - 在Enter键上提交表单

编辑1:代码下面编辑的基础上@Pavel Horal的建议按钮已移动到形式仍然没有运气。 )

编辑2:。该代码实际工作你必须在当你按下输入输入字段这解决了问题)

<div class="modal-body"> 
    <form> 
     <div class="form-group"> 
      <label for="payee">Payee</label> 
      <input type="text" class="form-control" id="payee" placeholder="Enter payee" 
        ng-model="vm.txn.payee" required> 
     </div> 

     <div class="form-group"> 
      <label for="memo">Memo</label> 
      <input type="text" class="form-control" id="memo" placeholder="Enter memo" 
        ng-model="vm.txn.memo"> 
     </div> 

     ... 

     <button type="submit" class="btn btn-info" ng-click="vm.ok()">OK</button> 
     <button type="button" class="btn btn-default" ng-click="vm.cancel()">Cancel</button> 
    </form> 
</div> 

<div class="modal-footer"> 
</div> 
+3

你的提交按钮是''

元素之外。通过* Enter *键提交是浏览器的一项功能,而不是Angular的。当输入* Enter *时,浏览器首先找到','或'
+0

添加我的评论作为一个正确的答案。 –

回答

2

你的提交按钮是<form>之外元件。通过提交输入密钥是浏览器功能,而不是AngularJS的一项功能。

打到时输入浏览器试图找到发现第一个提交按钮并通过模拟click事件提交表单。当提交按钮超出<form>时,浏览器将不会执行任何操作。

欲了解更多信息,你可以检查specification of implicit submission

+0

谢谢@Pavel。代码根据您的建议进行编辑。仍然没有运气。我认为这与Angular UI Bootstrap有关。我没有在他们的文档中看到一个好的表单示例。 – Naresh

+0

也许......它没有它(http://plnkr.co/edit/rRoKz9FJikLOi7K7ZjoV?p=preview)。 –

+0

@Naresh也可以使用UI Bootstrap - http://plnkr.co/edit/rRoKz9FJikLOi7K7ZjoV?p=preview。 –

2

您可以简单地通过在表单级别添加ng-submit指令来实现。这将调用任何表单级别字段的输入。

标记

<div class="modal-body"> 
    <form ng-submit="vm.ok()"> 
     <div class="form-group"> 
      <label for="payee">Payee</label> 
      <input type="text" class="form-control" id="payee" placeholder="Enter payee" 
        ng-model="vm.txn.payee" required> 
     </div> 

     <div class="form-group"> 
      <label for="memo">Memo</label> 
      <input type="text" class="form-control" id="memo" placeholder="Enter memo" 
        ng-enter="" ng-model="vm.txn.memo"> 
     </div> 

     ... 
    </form> 
</div> 
+0

谢谢pankaj。 ng-submit方法也可以,但是它有什么缺点吗?文档说,我们应该使用ng-submit或ng-click,但不能同时使用 - 这是否会造成限制?在我看来,ng-click提供更精细的控制。 – Naresh

+0

@Naresh nope ..'ng-submit'看起来更加适合做角度验证的方式..在你的情况下,你的按钮不在'form'上下文中,为什么你需要去'ng-click' ......这也说明你不是使用'ng-submit'和'ng-click'在相同的form.in另外你可以删除你按钮'type =“submit”'没有表单元素包装到它,这意味着它什么都不会做。当你找到任何我的回答错了吗? –

+1

没有错,你的答案,潘卡。有用。我只是试图评估使用的NG-点击与NG-提交。请注意我的原始问题中的编辑代码 - 这些按钮现在位于表单内。有了这个改变,我能够完美地完成ng-click工作。 – Naresh