Angularjs 角度形式验证-最小元素可以';不能大于最大元素
我在我的输入范围内有一些简单的验证,如下所示:Angularjs 角度形式验证-最小元素可以';不能大于最大元素,angularjs,Angularjs,我在我的输入范围内有一些简单的验证,如下所示: <form name="form" novalidate> Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/"> Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/">
<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/">
Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/">
</form>
最小值:
最大值:
我在CSS中添加了类ng valid
(绿色)和ng invalid
(红色),以便正确绘制,并将输入保存在ng model
变量中。这很好,但我想做一些额外的验证。如果最小值大于最大值或最大值小于最小值,则输入应无效
我怎样才能做到这一点
我是Angular的新手,我可以制作指令、控制器等,但我不知道如何验证这两个输入并设置它们的无效状态 您可以手动为
$error
对象编写内容。您可以编写自己的自定义验证(可能通过使用指令),并将验证附加到控制器的$validators
属性(如给定的客户验证示例)
您只需在HTML中使用此指令,就像
<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" custom-validation ng-pattern="/^[0-9]+$/">
Max: <input type="number" name="max" ng-model="rangemax" custom-validation ng-pattern="/^[0-9]+$/">
</form>
我认为这是一个好办法 但是您需要使用这些指令
app.directive('ngMin', function () {
app.directive('ngMax', function () {
您可以使用html属性min和max以及字段中的模型值,如下所示:
<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/" max="{{rangemax || 9999}}">
Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/" min="{{rangemin || 1}}">
</form>
最小值:
最大值:
然后,显示错误消息的条件可以是:(form.min.$error.max | form.max.$error.min)&(form.min.$dirty | form.max.$dirty)
app.directive('ngMin', function () {
app.directive('ngMax', function () {
<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/" max="{{rangemax || 9999}}">
Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/" min="{{rangemin || 1}}">
</form>