目录
基本验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
以上展示了基本的ng验证.
这里重点介绍一下上面的特例:
novalidate: 禁用H5自带的验证
ng-maxlength: 如果不写ng,maxlength则直接限制最多输入字符,稍微有点区别(IE9 + Chrome 测试)
ng-pattern: 通过正则验证,如果不写ng开头,无验证效果.
注:要启用验证 同时需要绑定一个ng-model
属性类 | 描述 | |
$valid | ng-valid | Boolean 告诉我们这一项当前基于你设定的规则是否验证通过 |
$invalid | ng-invalid | Boolean 告诉我们这一项当前基于你设定的规则是否验证未通过 |
$pristine | ng-pristine | Boolean 如果表单或者输入框没有使用则为True |
$dirty | ng-dirty | Boolean 如果表单或者输入框有使用到则为True |
访问表单属性
- 方位表单: <form name>.<angular property>
- 访问一个输入框: <form name>.<input name>.<angular property>
验证插件
在介绍messages插件之前,我们看下本来的验证提示
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
这里只是判断了require 当我们的代码 我们重复写了很多3元表达式
messages插件就是更友好的解决重复的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Nuget:Install-Package AngularJS.Messages
自定义验证
通过基本的验证方式,我们已经能够解决大部分的验证问题.但项目中永远充满着各种各样的需求.
在ng中的自定义验证,一般通过指令的形式创建.
1 2 3 4 5 6 7 8 9 |
|
在上面的messages插件Demo中,新建一行验证用户名已存在 以及 在input上添加了ensure-unique指令
同时,我们需要在js中定义ensure-unique指令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
指令不是本节重点内容,这里简单说下
ngModelController.$setValidity(‘unique‘, bool);
通过该API可以设置$error.unique.
setValidity为true,则$error.unique为false