ng-change不会触发数字输入类型

时间:2014-10-10 18:11:37

标签: javascript html5 angularjs

我正在使用angularJS,如果输入值不是数字,我会尝试弹出错误。

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

然后在$scope.checkNumber内我检查它是否是NaN:

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

看来,当我最初输入一个字符串如“fff”时没有弹出错误,我们也没有输入checkNumber函数,但是如果我输入“1fff”那么它确实输入了函数并且错误显示为这应该。

如果输入类型是数字且初始字符不是数字,那么ng-model 不是会改变吗?

1 个答案:

答案 0 :(得分:1)

如何使用Angular内置验证,如下所示:

<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>