我有一个输入,可以是一个数字的数量或百分比。我想相应地限制输入的最大数量。
如果它的百分比是100,或者如果它是一个数值的话,我可以将ng-max加为100吗?
我尝试了以下方法,但当输入为百分比时,它不会将最大值设置为100:
<input type="number" min="0" ng-max="vm.isPercent ? '100' : ''">
发布于 2018-07-12 17:26:56
将max
属性与插值一起使用:
<input type="number" name="num1" ng-model="vm.num" required
min="0" max="{{vm.isPercent ? 100 : null}}" />
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app ng-init="vm={isPercent:true, num:101}">
<form name="form1">
<input type="checkbox" ng-model="vm.isPercent">Is Percent<br>
<input type="number" name="num1" ng-model="vm.num" required
min="0" max="{{vm.isPercent ? 100 : null}}" /><br>
Value={{vm.isPercent ? vm.num/100 : vm.num}}
</form>
<div ng-show="form1.$error.max" style="color: red">
Invalid: Percentage must be less than 100
</div>
</body>
用ng-max
演示bug
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app ng-init="vm={isPercent:true, num:101}">
<form name="form1">
<input type="checkbox" ng-model="vm.isPercent">Is Percent<br>
<input type="number" name="num1" ng-model="vm.num" required
min="0" ng-max="vm.isPercent ? 100 : null" /><br>
Value={{vm.isPercent ? vm.num/100 : vm.num}}
</form>
<div ng-show="form1.$error.max" style="color: red">
Invalid: Percentage must be less than 100
</div>
</body>
使用ng-max
指令,如果用户输入一个小于100的数字并按向上箭头,则该数字将增加到100并继续增加。
它确实将其标记为错误,并阻止表单被提交。
发布于 2018-07-12 18:00:45
您可以在isPercent中使用表达式。
<input type="number" min="0" max="{{isPercent ? 100 : null}}
如果isPercent是真的,它将使用100作为最大值,如果不是,它将使用null,所以不会有最大值。
https://stackoverflow.com/questions/51311106
复制相似问题