Fer*_*ndo 7 javascript angularjs
使用angularjs进行表单验证我想在用户单击提交时将所有必填字段标记为错误.
我使用input.ng-dirty.ng-invalid来设置控件的样式并出错.所以我想要的是在用户提交表单时在所需的控件(或所有控件......对我来说都是一样的)上设置ng-dirty.
验证工作正常.我理解为什么,我所尝试的可能是错的,但我找不到其他方法来做同样的效果,除了我认为太复杂而不正确的事情.
我试过的是:
<div ng-app>
<form novalidate>
<input name="formvalue" type="text" ng-model="formvalue" required />
<input type="submit" />
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
让我们首先通过将它包装进来为你的jsfiddle添加角度
<div ng-app>...</div>
Run Code Online (Sandbox Code Playgroud)
默认情况下,将在输入(脏)上验证必填字段.如果你想在任何输入(pristine)之前在提交时验证它们,那么你可以在提交按钮上运行一个函数来检查原始字段并弄脏它们.
这就是我在示例中所做的:http://jsfiddle.net/yq4NG/6/
您可以使用自定义格式化程序和验证程序构建可重用的解决方案,但这是一个简单的开关解决方案.
编辑:
再简单使用类:http://jsfiddle.net/yq4NG/8/
编辑[由@XMLilley在评论中提出]:
因为angular不提供一个$setDirty()方法,它等同于$setPristine()我们$dirty通过简单地用$的内容更新$ viewValue 来触发状态$modelValue.它没有任何改变,但模拟用户手动输入每个$pristine字段并使用该值搞乱而不改变任何内容.
| 归档时间: |
|
| 查看次数: |
13196 次 |
| 最近记录: |