目前支持4種大的校驗方式,分別是:InputValidator(針對input、textarea、select控件)、CompareValidator、AjaxValidator、RegexValidator、FunctionValidator
每種格式支持的控件類型如下:
|
input |
textarea |
select |
校驗方式 |
text |
radio |
checkbox |
file |
password |
textarea |
select-one |
InputValidator |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
CompareValidator |
√ |
|
|
√ |
√ |
√ |
|
AjaxValidator |
√ |
|
|
√ |
√ |
√ |
√ |
RegexValidator |
√ |
|
|
√ |
√ |
√ |
|
FunctionValidator |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
如果你用了不支持的校驗功能,插件將忽略這個校驗功能。 |
插件目前提示錯誤,有兩種模式:showword和showalert,即文字提示和窗口提示,下面的5大驗證方式,針對showalert這種方式不是都必須的,有些配置是沒有作用的
下面分別羅列全局初始化和5種校驗方式公開的屬性 |
formValidator: |
用來做初始化的類型,必須先執行 |
屬性 |
屬性名稱 |
默認值 |
showword |
showalert |
詳細解釋 |
validatorGroup |
校驗組 |
"1" |
√ |
√ |
一個頁面的控件可以分成多個組,分開校驗 |
empty |
是否可以爲空 |
false |
√ |
√ |
|
automodify |
輸入錯誤離開焦點的時候,自動修復錯誤 |
false |
√ |
√ |
先給出提示然後,自動修復,目前只支持text、file、textarea三種類型 |
onempty |
空時候的提示 |
"輸入內容爲空" |
√ |
|
可以爲空,爲空時候的提示 |
onshow |
顯示時候的提示 |
"請輸入內容" |
√ |
|
|
onfocus |
獲得焦點的提示 |
"請輸入內容" |
√ |
|
|
oncorrect |
輸入正確後的提示 |
"輸入正確" |
√ |
|
當你焦點離開控件的時候,如果輸入正確將出現該提示 |
onvalid |
校驗通過後的回調函數 |
null |
√ |
√ |
參數1:對象本身 參數2:值 校驗通過後,你還希望執行一些操作,你可以通過這個屬性來執行。 |
onfocusevent |
獲得焦點後要追加的回調函數 |
null |
√ |
√ |
參數1:對象本身 |
onblurevent |
失去焦點後要追加的回調函數 |
null |
√ |
√ |
參數1:對象本身 |
tipid |
顯示錯誤的容器ID |
表單ID+"Tip" |
√ |
|
|
defaultvalue |
默認值 |
null |
√ |
√ |
所有input和select表單。如果你不設置就保持原值,一旦設置就設爲默認值。 |
|
|
|
|
|
InputValidator: |
|
屬性 |
屬性名稱 |
默認值 |
詳細解釋 |
type |
比較類型 |
"size" |
(對select無效)"size":表示比較長度 "value":比較值。 |
min |
最小長度/值 |
0 |
(對select無效) |
max |
最大長度/值 |
99999999999999 |
(對select無效) |
onerror |
發生錯誤的提示 |
"輸入錯誤" |
|
defaultvalue |
默認值 |
null |
能滿足預設默認值的需求 |
|
|
|
|
|
CompareValidator: |
|
屬性 |
屬性名稱 |
默認值 |
詳細解釋 |
desID |
要比較控件的ID |
"" |
要跟源目標進行比較的目標ID |
operateor |
比較符號 |
"=" |
一共有如下幾種類型:=、!=、>、>=、<、<= |
datatype |
數據類型 |
"string" |
目前只支持2種:"string"、"number" |
onerror |
發生錯誤的提示 |
"輸入錯誤" |
|
|
|
|
|
|
RegexValidator: |
|
屬性 |
屬性名稱 |
默認值 |
詳細解釋 |
regexp |
正則表達式 |
"" |
採用的是顯式構造函數new RegExp("pattern"[,"flags"]); 由於Javascript 中'\' 被用作轉義字符,所以在使用顯示構造函數構造實例對象的時候,需要使用'\\' 代替'\'
|
param |
附加參數 |
"i" |
g:代表可以進行全局匹配。
i:代表不區分大小寫匹配。
m:代表可以進行多行匹配。
可以任意組合,當然也可以不加參數 |
datatype |
數據類型 |
"string" |
"string":自己寫的表達式,"enum":枚舉名。具體請見demo3.htm,你可以自己修改附加pageValidatorRegex.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 |
|
error |
當請求失敗時調用的函數 |
"請求失敗" |
你可以自己定義這個錯誤,在error裏自動打出 |
|
|
公共函數: |
主要是設置全局參數和判斷是否通過校驗 |
函數名 |
函數說明 |
jQuery.
formValidator.
initConfig |
參數:配置類型
屬性 |
默認值 |
說明 |
validatorGroup |
"1" |
你要針對哪個組進行配置 |
alertMessage |
false |
是否彈出窗口 |
onSuccess |
null |
該組校驗通過後的回調函數,返回false,阻止表單的提交 |
submitOnce |
false |
校驗通過後,是否灰掉所有的提交按鈕 |
onError |
null |
該組校驗失敗後的回調函數 |
|
jQuery.
formValidator.
PageIsValid |
一個參數: 不是配置類型
validatorGroup |
"1" |
你要針對哪個組進行驗證 |
|
jQuery.
formValidator.
IsOneValid |
一個參數: 當時設置驗證的表單元素ID。
返回是否校驗成功的信息。 |
jQuery.
formValidator. SetFailState |
function("tipid","顯示的信息")
在showword模式下,如果你的額外校驗沒有通過,你可以通過它來設置成失敗信息和狀態 |
jQuery.
formValidator. GetLength |
function("表單元素id")
判斷表單元素的選擇長度(個數)
checkbox或radiobutton表示選擇的個數。
select表示選擇的selectedIndex值。
其它的表示字符長度。 |
|
|
|
|
|
問答: |
|
|
|
1、如何實現一個控件,根據不同的情況,實現不同的控制? |
你只需要在你的不同種情況下,重新設置你的【一行代碼】 |
|
2、一個頁面上我有幾個tab頁,如何實現每個Tab頁上的控件單獨校驗? |
每個Tab頁上需要校驗的控件,你在寫【一行代碼】的時候,顯示的聲明組號 |
|
3、我採用的頁面上文字問題的方式,點提交的時候,有校驗未通過的,除了文字提示外,還可以再彈出窗口提示嗎? |
這個問題很簡單,你只要設置改組的全局配置,
jQuery.formValidator.initConfig({onError:function(){alert("有部分校驗沒有通過,請看頁面具體提示");}}) |
|
4、所有校驗通過後,我還要再做別的判斷可以嗎?我自己的判斷沒有通過可以中斷提交嗎? |
同樣很簡單,你頁只需設置該組的全局配置,
jQuery.formValidator.initConfig({onSuccess:function()
{
if(你的額外判斷失敗)
return false;
else
return true;
}})
|
|
5、我有一組的checkbox(radiobutton)如何設置校驗? |
你只需在該組的第一個checkbox上設置校驗信息即可,具體請參考demo1裏的範例
如果你該組的第一個控件的ID ,你可以這麼寫:$("sex_1").InputValidator({...})
如果你只知道該組的name,你可以這麼寫:$("input:check[@name='sex']").slice(0,1).InputValidator({...}) |
|
6、我有2個表單元素,任意一個元素輸入東西就算驗證通過,如何寫代碼?比如要求輸入中文名字和英文名字任意一個即算校驗通過。 |
正在開發這個功能 |
|
7、一個表單元素校驗通過了,但是我想額外再進行其它的校驗,出錯要自定義錯誤,如何寫代碼? |
$("#ewjy").formValidator({onshow:"無論你輸入什麼,都會提示你額外校驗出錯,錯誤信息自定義",onfocus:"至少輸入一個字符",oncorrect:"你怎麼可能輸入正確了,難道是bug?",onvalid:function(){$.formValidator.SetFailState("ewjyTip","額外校驗失敗");alert("額外校驗失敗");return false;}}).InputValidator({min:1,onerror:"這裏至少要一個字符,請確認"}); |
|
8、如何讓賦了初始值的表單元素默認校驗通過 |
$("#xueli").formValidator({onshow:"請選擇你的學歷",onfocus:"學歷必須選擇",oncorrect:"謝謝你的配合",defaultvalue:"b"}).InputValidator({onerror: "你是不是忘記選擇學歷了!"}).DefaultPassed(); |