亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

詳解HTML5中表單驗證的8種方法介紹

2024-09-05 07:21:52
字體:
來源:轉載
供稿:網友

在深人探討表單驗證之前,讓我們先思考一下表單驗證的真實含義。就其核心而言,表單驗證是一套系統,它為終端用戶檢測無效的控件數據并標記這些錯誤。換言之,表單驗證就是在表單提交服務器前對其進行一系列的檢查并通知用戶糾正錯誤。

但是真正的表單驗證是什么?

是一種優化。

之所以說表單驗證是一種優化,是因為僅通過表單驗證機制不足以保證提交給服務器的表單數據是正確和有效的。另一方面,設計表單驗證是為了讓Web應 用更快地拋出錯誤。換句話說,最好利用瀏覽器內置的處理機制來告知用戶網頁內包含無效的表單控件值。過去,數據在網絡上轉一圈,僅僅是為了讓服務器通知用 戶他輸入了錯誤的數據。如果瀏覽器完全有能力讓錯誤在離開客戶端之前就被捕獲到,那么我們應該利用這個優勢。

不過,瀏覽器的表單檢查還不足以處理所有的錯誤。

話雖如此,HTML5還是引入了八種用于驗證表單控件的數據正確性的方法。讓我們依次了解一下,不過先要介紹一下用于反饋驗證狀態的ValidityState對象。

在支持Html5表單驗證的瀏覽器中,可以通過表單控件來訪問ValidityState對象:

var valCheck = document.myForm.myInput.validity;

這行代碼獲取了名為myInput的表單元素的ValidityState對象。對象包含了對所有八種驗證狀態的引用,以及最終驗證結果。

調用方式如下:

valCheck.valid

執行完畢,我們會得到一個布爾值,它表示表單控件是否已通過了所有的驗證約束條件??梢园裿alid特性看做是最終驗證結果:如果所有八個約束條件都通過了,valid特性就是true,否則,只要有一項約束沒通過,valid標志都是false。

如前所述,任何表單元素都有八個可能的驗證約束條件。每個條件在ValidityState對象中都有對應的特性名,可以用適當的方式訪問。讓我們逐一分析,看看它們是如何與表單控件關聯的,以及如何基于ValidityState對象來對它們進行檢查:

1、valueMissing

目的:確保表單控件中的值已填寫。

用法:在表單控件中將required特性設置為true。

示例:

<input type="text" name="myText" required>

詳細說明:如果表單控件設置了required特性,那么在用戶填寫或者通過代碼調用方式填值之前,控件會一直處于無效狀態。例如,空的文本輸入框無法通過必填檢查,除非在其中輸入任意文本。輸入值為空時,valueMissing會返回true。

2、typeMismatch

目的:保證控件值與預期類型相匹配(如numbe、email、URL等).

用法:指定表單控件的type特性值。

示例:

<input type="email" name="myEmail">

詳細說明:特殊的表單控件類型不只是用來定制手機鍵盤, 如果瀏覽器能夠識別出來表單控件中的輸入不符合對應的類型規則,比如email地址中沒有@符號,或者number型控件的輸入值不是有效的數字,那么瀏 覽器就會把這個控件標記出來以提示類型不匹配。無論哪種出錯情況,typeMismatch將返回true。

3、patternMismatch

目的:根據表單控件上設置的格式規則驗證輸入是否為有效格式。

用法:在表單控件上設置pattern特性,井賦予適當的匹配規則。

示例:

<input type="text" name="creditcardnumber" pattern="[0-9]{16}" title="A creditcard number is 16 digits with no spaces or dashes">

詳細說明:pattern特性向開發人員提供了一種強大而靈活的方式來為表單的控件值設定正則表達式驗證機制。當為控件設置了pattern特性后,只要 輸入控件的值不符合模式規則,patternMismatch就會返回true值。從引導用戶和技術參考兩方面考慮,你應該在包含pattern特性的表 單控件中設置title特性以說明規則的作用。

4、tooLong

目的:避免輸入值包含過多字符。

用法:在表單控件上設置maxLength特性。

示例:

<input type="text" name="limitedText" maxLength="140">

詳細說明:如果輸入值的長度超過maxLength, tooLong特性會返回true。雖然表單控件通常會在用戶輸入時限制最大長度,但在有些情況下,如通過程序設置,還是會超出最大值。

5、rangeUnderflow

目的:限制數值型控件的最小值。

用法:為表單控件設置min特性,并賦予允許的最小值。

示例:

<input type="range" name="ageCheck" min="18">

詳細說明:在需要做數值范圍檢查的表單控件中,數值很可能會暫時低于設置的下限。此時,ValidityState的rangeUnderflow特性將返回true。

6、rangeOverflow

目的:限制數值型控件的最大值。

用法:為表單控件設置max特性,并賦予允許的最大值。

示例:

<input type="range" name="kidAgeCheck" max="12">

詳細說明:與rangeUnderflow類似,如果一個表單控件的值比max更大,特性將返回true。

7、stepMismatch

目的:確保輸入值符合min、max及step即設置。

用法:為表單控件設置step特性,指定數值的增量。

示例:

<input type="range" name="confidenceLevel" min="0" max="100" step="5">

詳細說明:此約束條件用來保證數值符合min、max和step的要求。換句話說,當前值必須是最小值與step特性值的倍數之和。例如,范圍從0到100,step特性值為5,此時就不允許出現17,否則stepMismatch返回true值。

8、customError

目的:處理應用代碼明確設置及計算產生的錯誤。

用法:調用setCustomValidity(message)將表單控件置于customError狀態。

示例:

passwordConfirmationField.setCustomValidity("Password values do not match.");

詳細說明:瀏覽器內置的驗證機制不適用時,需要顯示自定義驗證錯誤信息。當輸入值不符合語義規則時,應用程序代碼應設置這些自定義驗證消息。

自定義驗證消息的典型用例是驗證控件中的值是否一致。例如,密碼和密碼確認兩個輸人框的值不匹配。只要定制了驗證消息,控件就會處于無效狀態,并且customError返回true。要清除錯誤,只需在控件上調用setCustomValidity("")即可。

好了,以上就是HTML5中表單驗證的8種基本方法,希望對初學者有所幫助。也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线免费| 日本亚洲欧美成人| 亚洲一区二区三区毛片| 日韩精品在线看| 亚洲国产精品久久精品怡红院| 成人性生交大片免费看小说| 人人做人人澡人人爽欧美| 亚洲精品电影网在线观看| 欧美一级免费视频| 在线视频中文亚洲| 亚洲电影免费观看高清| 精品视频偷偷看在线观看| 国产精品亚发布| 国产一区深夜福利| 亚洲激情视频网站| 毛片精品免费在线观看| 青青草99啪国产免费| 日本成人激情视频| 日韩av电影在线网| 国产精品日韩在线观看| 国产激情视频一区| 精品视频久久久久久久| 国产亚洲视频在线观看| 色婷婷**av毛片一区| 日韩av三级在线观看| 亚洲欧美日韩直播| 国产精品久久久久7777婷婷| 久久天堂电影网| 91精品在线看| 久久色精品视频| 亚洲一区二区三区久久| 亚洲影院在线看| 亚洲国产精品成人va在线观看| 国产一区二区三区欧美| 91亚洲精品在线观看| 亚洲综合日韩中文字幕v在线| 欧美成人免费在线观看| 精品中文字幕久久久久久| 日韩美女写真福利在线观看| 日韩美女视频在线观看| 欧美激情xxxx性bbbb| 国自产精品手机在线观看视频| 亚洲嫩模很污视频| 欧美日韩在线另类| 在线国产精品视频| 91精品国产一区| 激情懂色av一区av二区av| 97精品久久久| 日韩在线高清视频| 亚洲欧美日韩精品久久奇米色影视| 中文字幕综合一区| 亚洲欧美日韩视频一区| 亚洲国产成人久久综合| 欧美成人免费全部观看天天性色| 91网站在线免费观看| 久久最新资源网| 青青草原一区二区| 欧美理论电影在线观看| 亚洲精品国精品久久99热一| 亚洲白虎美女被爆操| 岛国av一区二区在线在线观看| 日韩精品极品视频免费观看| 98精品国产自产在线观看| 日韩av在线播放资源| 亚洲性无码av在线| 国产精品白丝jk喷水视频一区| 亚洲精品久久久久中文字幕二区| 亚洲人成电影在线观看天堂色| 欧美精品在线免费观看| 国产精品人人做人人爽| 久久夜色精品国产亚洲aⅴ| 国产成人精品日本亚洲专区61| 色婷婷综合久久久久| xvideos亚洲人网站| 欧美成人中文字幕在线| 国产精品免费小视频| 91香蕉嫩草神马影院在线观看| 亚洲第一网站男人都懂| 亚洲欧美精品suv| 日韩精品视频免费在线观看| xvideos成人免费中文版| 欧美激情二区三区| 久久99精品久久久久久青青91| 色婷婷亚洲mv天堂mv在影片| 国产精品久久久久久久久久久新郎| 中文字幕av日韩| 午夜精品久久久久久久99热| 91在线高清视频| 日韩在线视频线视频免费网站| 性欧美长视频免费观看不卡| 久久久女人电视剧免费播放下载| 国产精品男女猛烈高潮激情| 91chinesevideo永久地址| 精品国产拍在线观看| 亚洲石原莉奈一区二区在线观看| 国产有码在线一区二区视频| 大桥未久av一区二区三区| 日韩视频精品在线| 亚洲男人第一网站| 国产一区二区三区精品久久久| 久久久精品视频在线观看| 日韩在线观看免费av| 69**夜色精品国产69乱| 亚洲成人av资源网| 91最新国产视频| 亚洲精品成人av| 亚洲人在线视频| 久久久久在线观看| 日韩黄在线观看| 精品少妇一区二区30p| 成人有码在线视频| 国产亚洲一区二区精品| 欧美一级视频一区二区| 久久久精品国产网站| 欧美美女操人视频| 日韩精品极品视频免费观看| 欧美黑人一级爽快片淫片高清| 福利一区福利二区微拍刺激| 欧美高清不卡在线| 欧美在线日韩在线| 日韩av中文字幕在线| 国产日韩欧美电影在线观看| 亚洲国产精品福利| 97在线精品国自产拍中文| 中文字幕亚洲天堂| 国产精品亚洲精品| 日韩高清电影免费观看完整| 孩xxxx性bbbb欧美| 欧美另类精品xxxx孕妇| 国产视频精品xxxx| 亚洲欧洲中文天堂| 久久久久久综合网天天| 国产日韩欧美中文在线播放| 欧美尺度大的性做爰视频| 欧美在线观看网址综合| 精品亚洲一区二区| 成人黄色影片在线| 国产成人av在线播放| 久久久亚洲网站| 成人免费视频xnxx.com| 久久精品国产v日韩v亚洲| 精品亚洲一区二区三区| 国产精品一区二区三| 国产97色在线| 欧美激情网友自拍| 97视频免费看| 日本成人免费在线| 欧美黑人又粗大| 久久久免费电影| 性色av香蕉一区二区| 国产亚洲视频在线| 欧美日韩中文在线观看| 精品视频在线播放免| 日韩亚洲欧美中文高清在线| 欧美最猛性xxxxx(亚洲精品)| 亚洲女人天堂av| 91久久久久久久久久久久久| 亚洲最大激情中文字幕| 亚洲人成电影网站色www| 亚洲国产又黄又爽女人高潮的| 国产亚洲视频中文字幕视频| 亚洲美女视频网站| 姬川优奈aav一区二区| 国产成人在线一区|