使用不带指令的JavaScript函数进行Angularjs表单/字段验证

文字

有没有一种方法可以在不使用指令的情况下验证angular字段例如:我想在输入字段上进行以下验证。

  • 如果字段为空,则应显示“字段必须包含值”消息。
  • 如果字段包含字母数字字符,我们应该显示“字段只能包含数字”。
  • 偶数-给用户的消息“值必须是偶数”。

我想在对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

有人可以请教吗?一个有效的例子将是很好的。

ProLoser

我很惊讶没有人提到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验证(不是傻瓜手表)

这是一个工作演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章