jQuery插件——Validation Plugin表單驗證


jQuery表單驗證插件:https://plugins. jquery.com/tag/validate/
 
jQuery Validation插件是最常用的插件之一: http://jqueryvalidation.org/
 
一、基本API
 
rules里面的“username”是input中的“name”,不是“id”。
表單驗證,主要是倆:一是規則,二是提示信息
 
當在使用validate插件的時候:
使用validate()方法的時候將debug設置為true,那么表單不會提交,只進行檢查,調試時比較方便
 
validate()方法是validate插件中 的核心方法<br>
基本的驗證方法有required:true, 必填 remote:"url地址" 去該地址遠程校驗 minlength 最小長度 maxlength 最大長度 rangelength 長度范圍 min最小值 max最大值 range值范圍 email Email格式 url URL格式 date 日期 dateISO ISO日期 number 數字 digits 整數 equalTo 與另一個元素值相等
 
配置項 remote 遠程校驗 -- 可用於發送數據到服務器進行校驗
-- 可以是 get請求 即 remote :url 便可發送當前信息至該url進而獲取信息      -- 也可以是 post請求 即 remote : {url: url,type: .., data :所要發送的信息} 即發送當前信息以及data中的信息至 url
 
二、基本API(2)
 
rangelength長度范圍:是以數組的方式。例如[2,10]
min和minlength的區別:叫length代表是長度,不加length代表的是它的值,也就是值的范圍要注意。
 
設置:email,url,date,dateISO:true
url:校驗要加http://或https://
dateISO: yyyy-mm-dd 或 yyyy/mm/dd格式
 
number:true 提示輸入必須為數字
digits:true 提示輸入必須為非負整數
equalto:"#password" 密碼確認
比如確認密碼的制作equalTo:"選擇器"(密碼校驗)  “#password"
 
三、高級API
 
△rules()方法
(只針對表單里的元素,而不是某個整個表單)
1.可以使用rules("add",{})的方法來為元素添加規則,如:
$("#username").rules("add",{minlength:2,maxlength:10})
2.可以使用rules("remove",{})的方法來為元素去掉規則,如:
$("#username").rules("remove","email")
 
使用valid方法可以來實現對表單的檢查:
$("#bt1").bind("click",function(){
alert($("#demoForm").valid()?"填寫正確":"填寫錯誤");
})
 
validator對象方法
validate方法返回Validator對象,validator對象有很多有用的方法:
validator.form()驗證表單是否有效,返回TRUE/false
validator.element(element)驗證某個元素是否有效,返回TRUE/false
validator.resetform()把表單恢復到驗證前原來的狀態
validator.showErrors(errors)針對某個元素顯示特定的錯誤信息(自定義校驗中可以使用)
validator.numberOfInvalids()返回無效的元素數量(正確返回0)
 
validator對象靜態方法,可以直接使用
$.validator.addMethod(name,method[,message])增加自定義的驗證方法
$.validator.format(template,argument,argumentN...)格式化字符串,用參數代替模板中的{n}
$.validator.setDefaults(options)修改插件默認設置
$.validator.addClassRules(name,rules)為包含class屬性名批量增加驗證類型
 
validate()方法配置項
validate()方法配置項是validate插件的核心內容
 
submitHandler通過驗證后運行的函數,可以加上表單提交方法
invalidHandler無效表單提交后運行的函數
ignore對某些元素不進行驗證
rules定義校驗規則
messages定義提示信息
groups對一組元素的驗證,用一個錯誤提示,用errorPlacement控制把出錯信息放在那實例調用:
submitHandler:function(from){
//表單提交的方式
from:submit();//$(form).Ajax.submit();//$ajax等方式提交表單
}
 
invalidHandler:function(event,validator){ //event:無效驗證觸發的事件 //validator:對象
 
}也可以寫一個事件來觸發
$("選擇器屬性值").on("事件名",function(event,validator)){
 
});
 
ignore:"#hh" 對類hh不進行校驗
 
每個rules的配置方法都有一個默認depends:function(element){條件},表示當函數滿足條件時,才開始檢驗該配置方法<br>
當配置方法有參數時可為該方法添加參數param:x,當depends中函數滿足條件時才傳入參數進行配置
 
groups:{login:"username password confirm-password"} //對一組元素進行驗證
errorPlacement:function(error,element){ //對一組元素驗證后錯誤信息顯示
error.insertBefore("#info");
}
 
validate()方法配制項
onsubmit是否在提交時驗證
onfocusout是否在獲取焦點時驗證
onkeyup是否在敲擊鍵盤時驗證
onclick是否在鼠標點擊時驗證,一般用於checkbox或者radio
focusInvalid提交表單后,未通過驗證的表單(第一個或提交之前獲得焦點的未通過驗證的表單)是否會獲
得焦點
focusCleanup當未通過驗證的元素獲得焦點時,是否移除錯誤提示
errorClass指定錯誤提示的css類名,默認為error,可以自定義錯誤提示的樣式,當然類名也可以自定義設置
validClass指定驗證通過的css類名 道理同上
errorElement使用什么標簽標記錯誤 (如用<li>標記)
wrapper使用什么標簽把上邊的errorElement包起來 (如用<ul>包裹)
errorLabelContainer把錯誤信息統一防在一個容器里面 (如放在類或id選擇器中)
errorContainer顯示或者隱藏驗證信息,可以自動實現由錯誤信息出現時把容器屬性變為顯示,無錯誤時隱藏(一般同時使用和上面3個或上面3個同時使用)
 
showError可以顯示總共有多少個未通過驗證的元素
showErrors:function(errorMap,errorList){
可以添加自定義錯誤方式
this.defaultShowErrors();//系統默認的錯誤信息展示方式
}
errorMap,errorList區別:list比map更詳細,map可以直接自定義信息,list可以用來分析錯誤信息
 
errorPlacement自定義錯誤信息放到哪里
success要驗證的元素通過驗證后的動作(主要針對的是label元素)
 
highlight可以給未通過驗證的元素加效果(主要針對表單t元素)
unhighlight去除未通過驗證的元素的效果,一般和highlight同時使用
 

選擇器擴展:
:blank 選擇所有值為空的元素
:filled 選擇所有值不為空的元素
:unchecked 選擇所有沒有被選中的元素

 
四、 自定義驗證方法
 
$.validator.addMethod(name,.method[,message])
name:方法名稱
method:function(value,element,params)方法邏輯
message:提示消息
this.optional(element)意思填寫值了才會驗證,加上這個之后最好設置require,否則這個驗證不會被執行
 
additional-methods.js包含了很多擴展驗證方法。在寫自定義方法時可以參考這個js庫
 
所有提交的表單數據,都必須驗證2次,提交前的客戶端驗證,提交后在服務器端再次進行驗證,保證數據的合法性。
 
服務器端不要相信任何從客戶端傳過來的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM