jQuery formValidator插件inputValidator,compareValida

1. jQuery formValidator表單驗證插件是什麼? [top]

jQuery formValidator表單驗證插件是客戶端表單驗證插件。
在做B/S開發的時候,我們經常涉及到很多表單驗證,例如新用戶註冊,填寫個人資料,錄入一些常規數據等等。在這之前,頁面開發者(JavaScript開發者)需要編寫大量的JavaScript來進行表單元素的校驗,而這些校驗在平時開發中不停的重複書寫。
常見的校驗如不能爲空,必須滿足長度要求,必須爲數字,必須爲Email等等。一般要判斷的表單元素比較多,開發過程就顯得枯燥無味——重複的代碼不斷重複,而且可能還要兼容多種瀏覽器,更多的考慮因素使人頭疼不已。由於每個要校驗的頁面雖然邏輯基本相同,但是在大多數情況下,出於種種原因,開發者寧願再編寫一套JS文件,爲了便於管理。
jQuery formValidator表單插件致力於改善這一過程。你只關心業務邏輯,而無需關係實現過程,只需簡單的配置,無需寫代碼就能實現表單的檢驗。它包括常規檢驗功能和可擴展校驗功能。針對每個表單元素你只需要寫一行配置信息就能完成校驗。而這些配置信息無需寫入表單元素,實現了js代碼和html代碼的分離。這樣做的好處,使B/S開發過程中,分工更加明確,頁面設計着只需關心他的頁面(設計的時候不必擔心把腳本弄壞了),javascript開發者只需關心腳本的開發。
而插件本身包含的校驗方式可以有無數種,只要你擴展正則表達式和函數。本插件於同類校驗插件最大的區別:校驗功能可以擴展;實現了校驗代碼於html代碼的完全分離;你只需寫一行配置信息就能完成一個表單元素的所有校驗。插件本身提供了很多回調函數,使調用者能最大限度的發揮自己的想象能力來完成自己的業務需求。在同一個頁面你可以擁有很多個校驗組,你只需在提交的按鈕那裏調用
return jQuery.formValidator.pageIsValid(’校驗組號’) 來完成多個組的校驗,互不干擾。
插件具備跨瀏覽器的能力。目前在ie和ff兩種瀏覽器下調試通過,你不用再考慮在多瀏覽器下如何兼容,jQuery formValidator幫你做到了這些。

2. jQuery formValidator能做什麼,不能做什麼? [top]

jQuery formValidator表單校驗插件支持的驗證功能(還有很多功能沒有羅列)羅列如下:

  • 支持所有類型客戶端控件的校驗
  • 支持jQuery所有的選擇器語法,只要控件有唯一ID和type屬性。
  • 支持函數和正則表達式的擴展。提供擴展庫formValidatorReg.js,你可以自由的添加、修改裏面的內容。
  • 支持2種校驗模式。第一種:文字提示(showword模式);第二種:彈出窗口提示(showalert模式)
  • 支持多個校驗組。如果一個頁面有多個提交按鈕,分別做不同得提交,提交前要做不同的校驗,所以你得用到校驗組的功能。
  • 支持4種狀態的信息提示功能,可以靈活的控制4種狀態是否顯示。第一種:剛打開網頁的時候進行提示;第二種:獲得焦點的時候進行提示;第三種:失去焦點時,校驗成功時候的提示;第四種:失去焦點時,校驗失敗的錯誤提示。
  • 支持自動構建提示層。
  • 支持自定義錯誤提示信息。
  • 支持控件的字符長度、值範圍、選擇個數的控制。值範圍支持數值型和字符型;選擇的個數支持radio/checkbox/select三種控件
  • 支持2個控件值的比較。目前可以比較字符串和數值型。
  • 支持服務器端校驗。
  • 支持輸入格式的校驗。

jQuery formValidator不能做的:

  • 目前對控件ID是動態產生的情況支持的不是很好。例如asp.net裏的gridview控件,因爲它的每行數據都是動態產生的,捕捉不到控件的ID。不過你硬要寫,也是能實現的。
  • 其他沒有提到的,很希望你能告訴我們。

3. 什麼情況下,我應該使用jQuery formValidator? [top]

只要控件ID是一定的,即:控件ID是你自己指定的,這種情況你都可以調用。當然動態產生ID的,你也可以調用。jQuery formValidator可以幫助你減輕客戶端校驗編程的壓力,讓你有更多的精力投入對業務的關注中。

無論你是大型系統還是小型系統都適合調用本插件,本插件的壓縮版本只有6K(可能本網頁的一張圖片就有幾十K),個人認爲可以忽略網頁的加載時間。

4. 快速開始 [top]

你可以有兩種方法快速開始(看到效果)

  • 直接查看Demo頁面 (goto>>
  • 下載最新的版本,直接在本地查看。(goto>>

無論是那種方法,演示的例子中都有詳細的步驟,以及對應的代碼。

5. 使用插件必須加載的文件 [top]

//加載jQuery類庫
<script src="jquery_last.js" type="text/javascript"></script>
//加載插件的樣式庫,如果你是自動構建提示層,請加載validatorAuto.css
<link type="text/css" rel="stylesheet" href="style/validator.css"></link>
//加載插件
<script src="formValidator.js" type="text/javascript"></script>
//加載擴展庫
<script src="formValidatorRegex.js" type="text/javascript"></script>

6 jQuery formValidator插件的API幫助[top]

目前支持5種大的校驗方式,分別是:inputValidator(針對input、textarea、select控件的字符長度、值範圍、選擇個數的控制)、compareValidator(提供2個對象的比較,目前可以比較字符串和數值型)、ajaxValidator(通過ajax到服務器上做數據校驗)、regexValidator(提供可擴展的正則表達式庫)、functionValidator (提供可擴展函數庫來做校驗)

每種格式支持的控件類型如下:

input textarea select
校驗方式 text radio checkbox file password textarea select-one
inputValidator
compareValidator
ajaxValidator
regexValidator
functionValidator
如果你用了不支持的校驗功能,插件將忽略這個校驗功能。

插件目前提示錯誤,有兩種模式:showword和showalert,即文字提示和窗口提示,下面的4大驗證方式,針對showalert這種方式不是都必須的,有些配置是沒有作用的
下面分別羅列全局初始化和5種校驗方式公開的屬性
formValidator: 用來做初始化的類型,必須先執行。("√"爲showalert可用參數)
屬性 屬性名稱 默認值 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表單。如果你不設置就保持原值,一旦設置就設爲默認值。
triggerevent 默認值 blur 當前支持2種屬性值:
blur:失去焦點的時候觸發
change:當輸入框裏的值發生改變的時候觸發
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:
屬性 屬性名稱 默認值 詳細解釋
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:元素對象
默認當作處理過程
true/false 校驗成功/失敗
字符串 校驗失敗,返回值當作自定義錯誤
處理過程
onerror 發生錯誤的提示 "輸入錯誤" 函數return false的時候,顯示該錯誤信息
公共函數: 主要是設置全局參數和判斷是否通過校驗
函數名 函數說明
$.formValidator.initConfig 參數:配置類型
屬性 默認值 說明
validatorgroup "1" 你要針對哪個組進行配置
formid "" 要自動註冊pageIsValid函數的表單ID號
alertmessage false 是否彈出窗口
autotip false 是否自動構建提示層
errorfocus true 發生錯誤的時候,第一個出錯控件是否獲得焦點
forcevalid true 是否一直輸入正確爲止才允許離開焦點
wideword true 是否把一個全角字符當做2個長度
onsuccess null 該組校驗通過後的回調函數,返回false,阻止表單的提交
submitonce false 校驗通過後,是否灰掉所有的提交按鈕
onerror null 該組校驗失敗後的回調函數, 有兩個參數
參數1 一個校驗沒有通過的錯誤信息
參數2 一個校驗沒有通過的元素對象
debug false 是否處於調試模式。true:不提交表單
$.formValidator.pageIsValid 一個參數: 不是配置類型
validatorgroup "1" 你要針對哪個組進行驗證
$.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狀態

7 其他補遺 [top]

--------------------------------

jQuery formValidator表單驗證插件是什麼?

jQuery formValidator表單驗證插件,它是基於jQuery類庫,實現了js腳本於頁面html代碼的分離。你可以劃分多個校驗組,每個組的校驗都是互不影響。對一個表單對象,你只需要寫一行代碼就可以輕鬆實現無數種(理論上)腳本控制目前支持5種大的校驗方式,分別是:inputValidator(針對input、textarea、select控件的字符長度、值範圍、選擇個數的控制)、compareValidator(提供2個對象的比較,目前可以比較字符串和數值型)、ajaxValidator(通過ajax到服務器上做數據校驗)、regexValidator(提供可擴展的正則表達式庫)、functionValidator (可使用外部函數來做校驗)


本插件於其他校驗控件最大的區別有3點:


1、校驗功能可以擴展。
對中文、英文、數字、整數、實數、Email地址格式、基於HTTP協議的網址格式、電話號碼格式、手機號碼格式、貨幣格式、郵政編碼、身份證號碼、QQ號碼、日期等等這些控制,別的表單校驗控件是代碼裏寫死的,而formValidator是通過外部js文件來擴展的,你可以通過寫正則表達式和函數來無限的擴展這些功能

2、實現了校驗代碼於html代碼的完全分離。
你的所有信息都無需配置在校驗表單元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程師的工作不交織在一起

3、你只需寫一行代碼就能完成一個表單元素的所有校驗。你只需要寫一行代碼就能完成一下所有的控制

  • 支持所有類型客戶端控件的校驗
  • 支持jQuery所有的選擇器語法,只要控件有唯一ID和type屬性
  • 支持函數和正則表達式的擴展。提供擴展庫formValidatorReg.js,你可以自由的添加、修改裏面的內容。
  • 支持2種校驗模式。第一種:文字提示(showword模式);第二種:彈出窗口提示(showalert模式)
  • 支持多個校驗組。如果一個頁面有多個提交按鈕,分別做不同得提交,提交前要做不同的校驗,所以你得用到校驗組的功能。
  • 支持4種狀態的信息提示功能,可以靈活的控制4種狀態是否顯示。第一種:剛打開網頁的時候進行提示;第二種:獲得焦點的時候進行提示;第三種:失去焦點時,校驗成功時候的提示;第四種:失去焦點時,校驗失敗的錯誤提示。
  • 支持自動構建提示層。可以進行精確的定位。
  • 支持自定義錯誤提示信息。
  • 支持控件的字符長度、值範圍、選擇個數的控制。值範圍支持數值型和字符型;選擇的個數支持radio/checkbox/select三種控件
  • 支持2個控件值的比較。目前可以比較字符串和數值型。
  • 支持服務器端校驗。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章