【发布时间】:2013-02-22 10:38:09
【问题描述】:
下面的代码似乎可以很好地完成基本的必需表单验证。
当字段脏 + 无效时,表单显示红色 Name is required 消息,如果字段脏 + 有效,则显示 Great! 消息。
但是对于表单中的每个字段都重复此代码是一团糟:
<form name="myForm">
<div class="control-group"
ng-class="{error: myForm.name.$invalid && myForm.name.$dirty}">
<label>Name:</label>
<input type="text" name="name" ng-model="user.name" required/>
<span ng-show="myForm.name.$invalid && myForm.name.$dirty"
class="help-inline">Name is required</span>
<span ng-show="myForm.names.$valid && myForm.names.$dirty">Great!</span>
</div>
</form>
我希望能够以更简单的方式指定ng-show 和ng-class 属性。
【问题讨论】:
-
我将这些东西封装在一个指令中。我还使用 DOM 操作添加了验证类和跨度。所以我的标记只是标签和输入。
-
我知道这是一个老问题,但我写了一个 Article 试图解决这个问题
-
你可以试试这个 Angular 模块 jonsamwell.github.io/angular-auto-validate - 它采用降低 html 表达式复杂性的方法来显示/隐藏验证消息以支持编码的消息。
-
另一个无耻的自我推销:johannesjo.github.io/ng-fab-form,它比 angular-auto-validate 具有优势,它还显示了很好的全局可配置错误消息,而无需您更改任何标记。
标签: angularjs