jQuery formValidator表單驗證插件是客戶端表單驗證插件。 在作B/S開發的時候,咱們常常涉及到不少表單驗證,例如新用戶註冊,填寫我的資料,錄入一些常規數據等等。在這以前,頁面開發者(JavaScript開發者)須要編寫大量的JavaScript來進行表單元素的校驗,而這些校驗在平時開發中不停的重複書寫。 常見的校驗如不能爲空,必須知足長度要求,必須爲數字,必須爲Email等等。通常要判斷的表單元素比較多,開發過程就顯得枯燥無味——重複的代碼不斷重複,並且可能還要兼容多種瀏覽器,更多的考慮因素令人頭疼不已。因爲每一個要校驗的頁面雖然邏輯基本相同,可是在大多數狀況下,出於種種緣由,開發者寧願再編寫一套JS文件,爲了便於管理。 jQuery formValidator表單插件致力於改善這一過程。你只關心業務邏輯,而無需關係實現過程,只需簡單的配置,無需寫代碼就能實現表單的檢驗。它包括常規檢驗功能和可擴展校驗功能。針對每一個表單元素你只須要寫一行配置信息就能完成校驗。而這些配置信息無需寫入表單元素,實現了js代碼和html代碼的分離。這樣作的好處,使B/S開發過程當中,分工更加明確,頁面設計着只需關心他的頁面(設計的時候沒必要擔憂把腳本弄壞了),javascript開發者只需關心腳本的開發。 而插件自己包含的校驗方式能夠有無數種,只要你擴展正則表達式和函數。本插件於同類校驗插件最大的區別:校驗功能能夠擴展;實現了校驗代碼於html代碼的徹底分離;你只需寫一行配置信息就能完成一個表單元素的全部校驗。插件自己提供了不少回調函數,使調用者能最大限度的發揮本身的想象能力來完成本身的業務需求。 在同一個頁面你能夠擁有不少個校驗組,你只需在提交的按鈕那裏調用 return jQuery.formValidator.pageIsValid('校驗組號') 來完成多個組的校驗,互不干擾。 插件具有跨瀏覽器的能力。目前在ie和ff兩種瀏覽器下調試經過,你不用再考慮在多瀏覽器下如何兼容,jQuery formValidator幫你作到了這些。javascript
web目錄\statics\js\formvalidator.jsphp
web目錄\statics\js\formvalidatorregex.jscss
1
2
|
<script language=
"javascript"
src=
"<?php echo JS_PATH?>formvalidator.js"
type=
"text/javascript"
charset=
"UTF-8"
></script>
<script language=
"javascript"
src=
"<?php echo JS_PATH?>formvalidatorregex.js"
type=
"text/javascript"
charset=
"UTF-8"
></script>
|
目前支持5種大的校驗方式,分別是:inputValidator(針對input、textarea、select控件的字符長度、值範圍、選擇個數的控制)、compareValidator(提供2個對象的比較,目前能夠比較字符串和數值型)、ajaxValidator(經過ajax到服務器上作數據校驗)、regexValidator(提供可擴展的正則表達式庫) 、functionValidator (提供可擴展函數庫來作校驗)
每種格式支持的控件類型以下:html
input | textarea | select | |||||
校驗方式 | text | radio | checkbox | file | password | textarea | select-one |
inputValidator | √ | √ | √ | √ | √ | √ | √ |
compareValidator | √ | √ | √ | √ | |||
ajaxValidator | √ | √ | √ | √ | √ | ||
regexValidator | √ | √ | √ | √ | |||
functionValidator | √ | √ | √ | √ | √ | √ | √ |
若是你用了不支持的校驗功能,插件將忽略這個校驗功能。java
插件目前提示錯誤,有兩種模式:showword和showalert,即文字提示和窗口提示,下面的4大驗證方式,針對showalert這種方式不是都必須的,有些配置是沒有做用的
下面分別羅列全局初始化和5種校驗方式公開的屬性web
formValidator:用來作初始化的類型,必須先執行。("√"爲showalert可用參數ajax
屬性 | 屬性名稱 | 默認值 | showalert | 詳細解釋 |
validatorgroup | 校驗組 | "1" | √ | 一個頁面的控件能夠分紅多個組,分開校驗 |
empty | 是否能夠爲空 | false | √ | |
automodify | 輸入錯誤離開焦點的時候,自動修復錯誤 | false | √ | 先給出提示而後,自動修復,目前只支持text、file、textarea三種類型 |
onempty | 空時候的提示 | "輸入內容爲空" | 能夠爲空,爲空時候的提示。爲空者不顯示 | |
onshow | 顯示時候的提示 | "請輸入內容" | 爲空者不顯示 | |
onfocus | 得到焦點的提示 | "請輸入內容" | 爲空者不顯示 | |
oncorrect | 輸入正確後的提示 | "輸入正確" | 當你焦點離開控件的時候,若是輸入正確將出現該提示。爲空者不顯示 | |
tipid | 顯示錯誤的容器ID | 表單ID+"Tip" | 若是不自動構建提示層,表示提示成的ID號 若是自動構建提示層,表示提示層相對的目標控件 |
|
tipcss | 自動構建的提示層的樣式 | "left":"10px", "top":"1px", "height":"20px", "width":"250px" |
主要用於定位自動構建的提示層 | |
forcevalid | 強制輸入的值必須有效 | true | √ | 是否把一個全角字符當作2個長度的參數 |
defaultvalue | 默認值 | null | √ | 全部input和select表單。若是你不設置就保持原值,一旦設置就設爲默認值。 |
inputValidator:正則表達式
屬性 | 屬性名稱 | 默認值 | 詳細解釋 |
type | 比較類型 | "size" | (對select無效) "size":表示比較長度 ,默認值 "number":數值型比較 "string":字符型比較 "date":短日期類型 "datetime":長日期類型 |
min | 最小長度/值 | 0 | 默認數值型。若是進行字符比較,請收入字符型 對select-one而言inputValidator裏的參數min和max表示選擇的索引號範圍 對select-multiple而言inputValidator裏的參數min和max表示選擇的個數 |
max | 最大長度/值 | 99999999999 | 同上 |
onerror | 發生錯誤的提示 | "輸入錯誤" | 爲空者不顯示。 |
onerrormin | 比min屬性小的提示 | null | 當用戶輸入的值比min屬性小的時候的錯誤提示 |
onerrormax | 比max屬性大的提示 | null | 當用戶輸入的值比max屬性大的時候的錯誤提示 |
empty | 控件文本值是否容許兩邊爲空 | 兩邊都容許出現空 | 默認值{leftempty:true,rightempty:true,emptyerror:null} leftempty:表示左邊是否容許爲空 rightempty:表示右邊是否容許爲空 emptyerror:出現該錯誤的時候的提示,若是爲null,則利用onerror屬性來提示錯誤。 |
compareValidator:json
屬性 | 屬性名稱 | 默認值 | 詳細解釋 |
desid | 要比較控件的ID | "" | 要跟源目標進行比較的目標ID |
operateor | 比較符號 | "=" | 一共有以下幾種類型:=、!=、>、>=、<、<= |
datatype | 數據類型 | "string" | 目前只支持2種:"string"、"number","datetime","date" |
onerror | 發生錯誤的提示 | "輸入錯誤" | 爲空者不顯示。 |
regexValidator:瀏覽器
屬性 | 屬性名稱 | 默認值 | 詳細解釋 |
regexp | 正則表達式 | "" | 採用的是顯式構造函數new RegExp("pattern"[,"flags"]); 因爲Javascript 中'\' 被用做轉義字符,因此在使用顯示構造函數構造實例對象的時候,須要使用'\\' 代替'\' |
param | 附加參數 | "i" | g:表明能夠進行全局匹配。 i:表明不區分大小寫匹配。 m:表明能夠進行多行匹配。 能夠任意組合,固然也能夠不加參數 |
datatype | 數據類型 | "string" | "string":本身寫的表達式,"enum":枚舉名。具體請見demo3.htm 你能夠本身修改、添加formValidatorRegex.js裏的枚舉項目名和表達式。 |
onerror: | 發生錯誤的提示 | "輸入錯誤" | 爲空者不顯示。 |
ajaxValidator:幾乎全部的屬性跟$.ajax()的屬性同樣,請參考$.ajax()函數的幫助
屬性 | 屬性名稱 | 默認值 | 詳細解釋 |
type | 請求的類型 | "GET" | "POST" 或 "GET" |
url | 發送到的URL地址 | "" | |
datatype | 返回的數據類型 | "html" | xml、html、script、json |
data | 數據 | "" | |
async | 是否以異步的方式發送 | true | |
success | 當請求成功時調用的函數 | null | |
processdata | 自動處理返回的數據爲字符串 | true | 在默認的狀況下,若是data選項傳進的數據是一個對象而不是字符串,將會自動地被處理和轉換成一個查詢字符串 |
complete | 當請求完成時調用的函數 | null | |
beforesend | 當請求前時調用的函數 | null | 有個一個參數,根$.ajax裏的beforeSend參數同樣。 |
buttons | 你點提交的按鈕(組)jQuery對象 | null | 當你觸發了ajax校驗,buttons裏對應的按鈕(組)就會灰掉,一直等待服務器返回數據爲止 |
error | 當請求失敗時調用的函數 | "請求失敗" | 你能夠本身定義這個錯誤,在error裏自動打出。爲空者不顯示。 |
functionValidator
屬性 | 屬性名稱 | 默認值 | 返回值的解釋 | ||||||
fun | 外部函數名() 參數1:元素的值, 參數2:元素對象 |
默認看成處理過程 |
|
||||||
onerror | 發生錯誤的提示 | "輸入錯誤" | 函數return false的時候,顯示該錯誤信息 |
公共函數:主要是設置全局參數和判斷是否經過校驗
函數名 | 函數說明 | ||||||||||||||||||||||||||||||||||||||||
$.formValidator.initConfig | 參數:配置類型
|
||||||||||||||||||||||||||||||||||||||||
$.formValidator.pageIsValid | 一個參數: 不是配置類型
|
||||||||||||||||||||||||||||||||||||||||
$.formValidator.isOneValid | 一個參數: 當時設置驗證的表單元素ID。 返回是否校驗成功的信息。 |
||||||||||||||||||||||||||||||||||||||||
$.formValidator.setFailState | function("tipid","顯示的信息") 在showword模式下,若是你的額外校驗沒有經過,你能夠經過它來設置成失敗信息和狀態 |
||||||||||||||||||||||||||||||||||||||||
$.formValidator.getLength | function("表單元素id") checkbox或radiobutton表示(同組)選擇的個數。 對select-one,選擇索引的值 對select-multiple,inputValidator裏的參數min和max表示選擇的個數 其它input表示的表示字符長度。 |
||||||||||||||||||||||||||||||||||||||||
$.formValidator.retSetTipState | function(校驗組號) 來把該組的提示內容恢復到onshow狀態 |