2014-10-10 54 views
2

我正在使用angularJS,並且如果輸入值不是數字,我試圖得到一個錯誤以便彈出。ng-change在數字輸入類型上不會觸發

Number Value: <input type="number" ng-model="mydata.number" ng-change="checkNumber()" /> 
      <p style="color:red" ng-show="numberError"> 
       {{ numberError }} 
      </p> 

然後裏面$scope.checkNumber我檢查,看看它是否楠:

if(!$scope.mydata.number || isNaN($scope.mydata.number)) { 
       $scope.numberError = "This must be a number"; 
      } 

看來,當我最初進入一個字符串,如「FFF」沒有錯誤彈出窗口了,而我們沒有輸入checkNumber函數,但是如果我輸入「1fff」,那麼它確實進入了函數,並且錯誤顯示爲應該。

如果輸入類型是數字,並且初始字符不是數字,那麼ng型號而不是是否更改?

+1

上輸入類型=「數字」只火NG-變化時,一個數字是輸入,所以您的代碼不會以這種方式工作 – 2014-10-10 18:14:15

回答

1

怎麼樣使用角內置的驗證,就像這樣:

<form name="myForm"> 
    Number Value: 
    <input type="number" ng-model="mydata.number" name="myNumber" /> 
    <p style="color:red" ng-show="myForm.myNumber.$dirty && !myForm.myNumber.$valid"> 
     {{ numberError }} 
    </p> 
</form> 
+1

聽起來不錯thx何塞普 – 2014-10-10 18:50:31

相關問題