Validation(validate)插件提供了另一種方法來(lái)為一個(gè)表單添加驗(yàn)證,而不需要改變字段的HTML。此外,這個(gè)插件提供了廣泛的附加選項(xiàng)來(lái)控制它如何工作。我們通過(guò)給validate()函數(shù)傳遞一個(gè)對(duì)象直接量來(lái)設(shè)置這些選項(xiàng),其中包含了每個(gè)選項(xiàng)的單獨(dú)對(duì)象。例如,要指定一條驗(yàn)證規(guī)則,我們包含了該規(guī)則的代碼的一個(gè)對(duì)象。首先,緊跟著validation函數(shù)的第一個(gè)圓括號(hào)的后面,我們包含一個(gè)開始花括號(hào),并且在函數(shù)的結(jié)束圓括號(hào)的前面,放置一個(gè)結(jié)束花括號(hào)。
這對(duì)花括號(hào)表示一個(gè)對(duì)象直接量,它將包含選項(xiàng)設(shè)置。以這種方式使用Validation可能有點(diǎn)容易令人混淆,要理解插件的作者想要它如何工作,最好方法是看一個(gè)簡(jiǎn)單的示例,如圖9-6所示。

圖 9-6 即便使用這樣一個(gè)簡(jiǎn)單的表單,也可以使用Validation插件的高級(jí)選項(xiàng)實(shí)現(xiàn)更好的控制
提示:我們可以把jquery validate基本驗(yàn)證方法http://www.uphtm.com/js/432.html和這里所介紹的高級(jí)驗(yàn)證方法組合到同一個(gè)表單上。對(duì)于只有一條驗(yàn)證規(guī)則和錯(cuò)誤消息的字段,可以使用基本驗(yàn)證方法,因?yàn)樗芸旖荩皇菍?duì)于更為復(fù)雜的驗(yàn)證使用高級(jí)驗(yàn)證方法。
圖9-6中的表單的HTML如下所示:
這個(gè)表單包含兩個(gè)文本字段,以粗體顯示,一個(gè)用于人的名字,一個(gè)用于E-mail地址。本小節(jié)處理這兩個(gè)字段的驗(yàn)證,使用高級(jí)規(guī)則來(lái)確保名字字段和E-mail字段都填充了并且格式正確。
注意:可以在http://docs.jquery.com/Plug-ins/Validation/validate#options找到Validation插件的一個(gè)完整的選項(xiàng)列表。
validate高級(jí)規(guī)則
指定驗(yàn)證規(guī)則的高級(jí)方法包括,傳遞一個(gè)對(duì)象,其中包含了表單字段名字和驗(yàn)證規(guī)則或想要應(yīng)用到該字段的規(guī)則。該對(duì)象的基本結(jié)構(gòu)如下所示:
對(duì)象名為rules,其中,可以指定字段以及想要應(yīng)用到該字段的驗(yàn)證類型。然后,整個(gè)對(duì)象傳遞給validate()函數(shù)。例如,在圖9-6所示的表單中,為了讓名字字段成為必需的,可以對(duì)前面所述的字段應(yīng)用validate()函數(shù),然后把rules對(duì)象傳遞給該函數(shù),如下所示:
在這個(gè)例子中,字段的名字為name,并且規(guī)則指定了這個(gè)字段是必需的。要對(duì)一個(gè)表單字段應(yīng)用多個(gè)驗(yàn)證規(guī)則,必須為該字段創(chuàng)建另一個(gè)對(duì)象。例如,要針對(duì)圖9-6中的表單擴(kuò)展驗(yàn)證規(guī)則,可以添加一條規(guī)則,不僅使得email字段是必需的,而且也指定了E-mail地址必須是有效的格式:
注意:根據(jù)javaScr 如果還想讓birthday字段是必需的,可以把代碼做如下調(diào)整: 正如前面提到的,可以對(duì)高級(jí)驗(yàn)證規(guī)則所做的最強(qiáng)大和有用的事情是,要求訪問(wèn)者的輸入具有某個(gè)最小或最大長(zhǎng)度。例如,在一個(gè)投訴報(bào)告表單上,我們可能想要限制評(píng)論長(zhǎng)度,例如,200個(gè)字符,這樣,客戶會(huì)切中要點(diǎn)而不是長(zhǎng)篇大論。也有規(guī)則可以確保輸入的數(shù)字在某個(gè)范圍內(nèi),(轉(zhuǎn)載請(qǐng)注明出處:http://www.uphtm.com/js/433.html)因此,如果表單不是要足夠容易以供古人使用的話,我們不接受1900年以前的出生日期。 ·minlength。這個(gè)字段必須包含至少指定的數(shù)目的字符。例如,確保一個(gè)字段至少輸入了6個(gè)字符的規(guī)則是: ·maxlength。這個(gè)字段必須包含不多于指定數(shù)目的字符。例如,確保輸入到字段中的字符不超過(guò)100個(gè)的規(guī)則是: ·rangelength。minlength和maxlength的一個(gè)組合。指定了一個(gè)字段中所允許的最小字符數(shù)和最大字符數(shù)。例如,確保一個(gè)字段包含至少6個(gè)字符而不超過(guò)100個(gè)字符的規(guī)則是: ·min。要求字段包含一個(gè)數(shù)值,并且等于或大于指定的數(shù)值。例如,如下的規(guī)則要求字段包含一個(gè)數(shù)值,并且該數(shù)值大于或等于10。 在這個(gè)例子中,如果訪問(wèn)者輸入8,字段無(wú)法通過(guò)驗(yàn)證,因?yàn)?小于10。同理,如果訪問(wèn)者輸入一個(gè)單詞eight,那么字段也無(wú)法通過(guò)驗(yàn)證,并且會(huì)產(chǎn)生一條錯(cuò)誤消息。 ·max。和min一樣,但是指定了字段可以包含的最大的值。例如,要確保一個(gè)字段包含的值小于1000,可以使用如下規(guī)則: ·range。組合了min和max來(lái)指定字段必須包含的最小值和最大值。例如,要確保一個(gè)字段包含至少10但不超過(guò)1000的數(shù)值,可以使用: ·equalTo。要求一個(gè)字段內(nèi)容匹配其他字段。例如,在一個(gè)登錄表單上,通常要求訪問(wèn)者輸入一個(gè)密碼然后通過(guò)再次輸入密碼來(lái)驗(yàn)證它。通過(guò)這種方式,訪問(wèn)者可以確保第一次沒有輸錯(cuò)密碼。要使用這個(gè)方法,必須指定一個(gè)字符串,其中包含有效的選擇器。例如,假設(shè)第一個(gè)密碼字段有一個(gè)ID為passWord。如果想要確保“驗(yàn)證密碼”字段和第一個(gè)密碼字段匹配,可以使用這段代碼: 可以組合使用這些高級(jí)驗(yàn)證規(guī)則。只要一次處理一個(gè)字段就行了。這里有它們?nèi)绾我黄鸸ぷ鞯囊粋€(gè)例子。假設(shè)有一個(gè)表單包含了兩個(gè)字段,一個(gè)用于創(chuàng)建密碼,另一個(gè)用于確認(rèn)密碼。這兩個(gè)字段的HTML如下所示: 這兩個(gè)字段都是必需的,并且密碼必須至少有8個(gè)字符,但是不超過(guò)16個(gè)字符。最后,我們要確保“確認(rèn)密碼”字段匹配其他的密碼字段。假設(shè)表單的ID為signup,可以使用如下代碼驗(yàn)證這兩個(gè)字段: 轉(zhuǎn)載請(qǐng)注明出處:http://www.uphtm.com/js/433.html
新聞熱點(diǎn)
疑難解答
圖片精選