a easy AngularJS Form Validation plugin.
简洁高效的__表单验证插件__ javascript
See how powerful it.
看看它有多强大html
npm install ng-verify
require('angular');//在使用前,你须要引入angular require('ngVerify');//引入verify组件 var app = angular.module('APP',['ngVerify']);//注册组件
入口指令,规定组件所控制的表单范围git
<form verify-scope> ... </form>
defualt: 1
设置整个表单的错误消息样式angularjs
<form verify-scope="tipStyle: 2" >...</form>
元素指令,定义验证规则github
只须要使用ng-verify,会根据type类型校验非空验证和类型的格式npm
<!-- 校验非空验证和邮箱格式 --> <input type="email" ng-verify >
defualt: true
false容许空值经过校验app
<input type="number" ng-verify="required: false" >
min,max
定制校验字符长度dom
<input type="text" ng-verify="{min:3,max:6}" >
自定义正则,这样会优先以你的正则进行校验ui
<input type="text" ng-verify="pattern:/a-zA-Z/" >
自定义错误消息,会覆盖掉默认的提示。
<input type="text" ng-verify="{errmsg:'其实这里没有错,我是在逗你玩'}" >
defualt: 0
select下拉菜单属性,指定的option表示选中会校验不经过
<select ng-verify="option:0" > <option>请选择</option> <option>1</option> <option>2</option> <option>3</option> </select>
defualt: 1
checkbox最少勾选数,指定至少勾选几项才会经过验证
<div> <label >checkbox</label> <!-- checkbox多选,请确保全部checkbox被一个容器包起 --> <!-- 若是要用label修饰checkbox请统一全部都用 --> <!-- 确保每组checkbox的name属性相同,ng-verify指令只须要在任意一个checkbox上 --> <input type="checkbox" name="checkbox" > Captain America <input type="checkbox" name="checkbox" > Iron Man <input type="checkbox" name="checkbox" ng-verify="least:2"> Hulk </div>
指定一个元素进行2次校验,接收参数为 #id 或 name
<input type="password" name="password-1" ng-verify> <!-- 检测第二次输入的密码是否一致 --> <input type="password" ng-verify="{recheck:'password-1'}">
绑定一个表单提交按钮, control:'formName'
<form name="myform" verify> ... <a ng-verify="{control:'myform'}" ></a> <!-- 表单内的按钮 1 --> <input type="submit" ng-verify /> <!-- 表单内的按钮 2 --> </form> <button ng-verify="{control:'myform'}" >提交</button> <!--表单外的按钮-->
defualt: true
设置 disabled:false 提交按钮在表单未校验经过时不会禁用,而且会自动绑定一个click事件,点击时标记全部错误表单。
注意:a 标签是没有 disabled 属性的,因此请使用 button 或者 input 来作按钮。
<button ng-verify="disabled:false" >按钮</button>
defualt: form verify-scope
同上,设置单个元素提示样式
依赖注入
//依赖注入ngVerify后,能够调用一些公共方法 app.controller('yourCtrl',function(ngVerify){ ... })
ngVerify.check('formName', call_back, draw)
检测一个verify表单是否验证经过,并刷新一次提交按钮的状态
'formName' String //指定检测form的name值 (必须) call_back Function //检测完成后的回调 (可选) draw (default:true) Boolean //是否标记出未验证经过的元素 (可选)
//返回全部未验证经过的表单元素,并标记 ngVerify.check('formName',function (errEls) { console.log(errEls); }); //标记出未验证经过元素 ngVerify.check('formName'); //返回全部未验证经过的表单元素,不标记 ngVerify.check('formName',function (errEls) { console.log(errEls); },false);
ngVerify.checkElement(elemet, draw)
检测一个元素是否验证经过
element id/name/DomObj //参数 id 或 name 或一个原生 dom 对象 draw (default:true) Boolean //是否标记出未验证经过的元素 (可选)
ngVerify.setError(element, errmsg)
将一个表单元素强制标记为未验证经过,第二参数不传时取消标记。
ngVerify.setError('#id','这里有错') //以id标记错误 ngVerify.setError('name') //以name取消标记错误
ngVerify.scope()
获取一个verify表单的$scope做用域
ngVerify.scope('formName')
设置表单元素type类型,目前支持的type类型: