我输入的内容可以是数值或百分比。我想相应地限制输入的最大数量。
有没有一种方法可以将ng-max添加为100(如果百分比),或者如果为数字则不添加?
我尝试了以下方法,但是当输入为百分比时,并没有将最大值设置为100:
<input type="number" min="0" ng-max="vm.isPercent ? '100' : ''">
答案 0 :(得分:1)
您可以将表达式与isPercent一起使用。
<input type="number" min="0" max="{{isPercent ? 100 : null}}
如果isPercent为true,则将使用100作为最大值,否则,将使用null,因此将没有最大值。
答案 1 :(得分:0)
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
的错误的演示:
<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,然后继续增加。
它确实将其标记为错误,并阻止提交表单。