有没有一种方法可以在 不使用指令的情况下 以角度验证字段?例如:我想在输入字段上进行以下验证。
我想在对JavaScript函数的调用中进行以下验证。
我四处搜寻,发现有一种使用ng-valid和$ error的方法,但是我没有设法使其工作。
下面的代码根据我得到的答案之一:
<div ng-app> <form name='theForm' novalidate> <input type='text' name='theText' ng-model='theText' ng-pattern='/^[0-9]+$/'/> <span ng-show='theForm.theText.$error.pattern'>Field can contain only digits</span> <span ng-show='theText.length<1'>Field must contain a value</span> <span ng-show='theText%2!=0&&document.getElementsByName("theText").value!=""&&!theForm.theText.$error.pattern&&!theForm.theText.$pristine'>Value must be an even number</span> <br/><input type='submit' value='Submit' /> </form>
我想将最后一个[span]内的内容放入JavaScript函数中,以使其更加通用,并在条件改变时最终仅更改JS而不更改HTML
有人可以请教吗?一个有效的例子会很棒。
我很惊讶没有人提到ui-validate
$scope.isOdd = function($value){ return $value % 2; } ... <form name="myform"> <input ng-model="myVal" name="value" required ng-pattern="/^[0-9]*$/" ui-validate=" 'isOdd($value)' "></input> <pre>{{myform.value.$error|json}}</pre> </form>
没有比这更简单的了,它是正确的AngularJS验证(不是傻瓜手表)
这是一个工作演示