2013-12-10 31 views
1

我有一個帶有輸入文本字段以及按鈕的表單。我想要捕獲用戶在文本字段中按Enter鍵 - 不要提交表單,而是觸發另一個操作。該按鈕有其自己的單獨的點擊處理程序,出於某種原因,當我在文本字段中按Enter時被觸發。在角度表單上按下按鈕提交

例如: http://jsfiddle.net/T8zLq/1/

<form onsubmit="return false" ng-submit="mysubmit()" ng-controller="TestCtrl" ng-app="Test"> 
    <input type="text" /> 
    <button ng-click="test()">X</button> 
</form> 

var app=angular.module("Test", []); 

app.controller("TestCtrl", ["$scope", function($scope) { 
    $scope.test = function() {alert('lol'); }; 
    $scope.mysubmit = function() {alert('submit');}; 
}]); 

爲什麼會出現這種情況?

+0

所以,你想怎樣呢?你想要測試()不開火,但是當你按下回車鍵時會觸發mysubmit()?或者你不想開火? –

+0

正確 - test()只應該在按下按鈕時觸發,而不是當提交表單時 – user3088880

回答

6

設置type='button'到您的按鈕

<form ng-submit="mysubmit()" ng-controller="TestCtrl"> 
    <input type="text" /> 
    <button ng-click="test()" type='button'>X</button> 
</form> 

Demo

More

+0

啊,沒有意識到默認的按鈕類型是'submit'。 – user3088880

+0

啓發我們爲什麼人? – beku8

+2

@ beku8按鈕的默認值是* submit *,所以每次按下回車鍵都會提交表單。 –