gpt4 book ai didi

javascript - 使用没有指令的 JavaScript 函数的 Angularjs 表单/字段验证

转载 作者:可可西里 更新时间:2023-11-01 02:29:43 24 4
gpt4 key购买 nike

有没有办法在不使用指令的情况下以 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

有人可以指点一下吗?一个工作示例会很棒。

最佳答案

我很惊讶没有人提到 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 验证(不是愚蠢的 watch )

Here's a working demo

关于javascript - 使用没有指令的 JavaScript 函数的 Angularjs 表单/字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18125777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com