我有一个数字输入,我根据另一个表单字段动态设置min
和max
。我的方案如下:
我在输入字段上设置了ng-change
事件,以评估该数字是否遵循每个级别的规则。如果数字太高或太低,我将其设置为最小值。
<input type="number" step="1" ng-change="isValid()" ng-model="level.num" min="{{minNum}}" max="{{maxNum}}">
$scope.isValid = function () {
if( ($scope.level.num > $scope.maxNum) || ($scope.level.nums < $scope.minNum)) {
$scope.tooMany = true;
$scope.level.num = $scope.minNum;
}
};
我的问题是,我可以说我选择了第1级并希望输入15
,一旦我输入1
,它会自动将我的号码更改为2.我怎样才能更改号码用户已完成输入输入。
答案 0 :(得分:0)
如果您使用的是角度1.3,则可以使用ng-model-options:example
<input type="text" ng-model="name" ng-model-options="{ updateOn: 'blur' }">
答案 1 :(得分:0)
我的想法是将模糊应用为最小数字强制执行的变化因素,因为如果你的最小集合是3并且输入是24等,它可以是标准用例。这样你就可以封装在1个函数中保持逻辑
<input type="number" step="1" ng-blur="isValid(true)" ng-change="isValid(false)" ng-model="level.num" min="{{minNum}}" max="{{maxNum}}">
$scope.isValid = function (blurMode) {
if( ($scope.level.num > $scope.maxNum) || ($scope.level.nums < $scope.minNum && blurMode)) {
$scope.tooMany = true;
$scope.level.num = $scope.minNum;
}
};