【发布时间】:2013-08-08 12:15:17
【问题描述】:
有没有办法在角度验证字段不使用指令? 例如:我想对输入字段进行以下验证。
- 如果字段为空,我们应该显示“字段必须包含值”消息。
- 如果字段包含字母数字字符,我们应该显示“字段只能包含数字”。
- 偶数 - 给用户的消息“值必须是偶数”。
我想在调用 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
有人可以建议吗?一个可行的例子会很棒。
【问题讨论】:
-
如果您想在 javascript 函数中进行所有这些验证,为什么不采用 angular 方式并创建自定义验证指令?
-
为什么要使用 Javascript 函数? Angular 可以在观看模型的同时做到这一点:jsfiddle.net/DotDotDot/6UJZk/1,我认为使用另一个函数不会那么高效
标签: javascript validation angularjs angular-ui ui-validate