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類型: