ng变化不会't在数字输入类型上触发

ng-change doesn't trigger on number input type

本文关键字:数字输入 类型 变化 ng      更新时间:2023-09-26

我正在使用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函数,但如果我输入"1ff",它确实会输入函数,错误显示为应该的样子。

如果输入类型是数字,而初始字符不是数字,那么ng模型是否会发生变化?

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