考虑一个带有三个按钮的表单:
- <form ng-submit="updateUser()">
- <div>Name <input type="text" ng-model="userToEdit.name" /></div>
- <div>
- <button class="btn btn-primary" ng-click="updateUser()">Save</button>
- <button class="btn" ng-click="cancelEdit()">Cancel</button>
- <button class="btn btn-danger" ng-click="deleteUser(userToEdit)"><i class="icon-trash"></i> Delete</button>
- </div>
- </form>
当我单击取消时,cancelEdit()被调用,那么updateUser()被调用。我不想要调用updateUser()方法。有没有办法压制这个表单提交(preferebly没有jQuery?)
注意:我仍然希望能够输入并默认保存操作。
对于< button>有一个类型属性默认为提交 – 请参阅
this spec.因此,您窗体中的每个按钮都是提交按钮。您需要指定不应触发表单提交的按钮的按钮类型,如下所示:
- <form ng-submit="updateUser()">
- <div>Name <input type="text" ng-model="userToEdit.name" /></div>
- <div>
- <button class="btn btn-primary">Save</button>
- <button type="button" class="btn" ng-click="cancelEdit()">Cancel</button>
- <button type="button" class="btn btn-danger" ng-click="deleteUser(userToEdit)"><i class="icon-trash"></i> Delete</button>
- </div>
- </form>
也不需要将提交操作放在ng-click和ng-submit两个方面 – 它将触发双重提交。我建议使用ng提交,因为它捕获表单提交的所有方式,如按ENTER键,不仅单击提交按钮。
希望这可以帮助 :)