搜尋
首頁web前端前端問答html5中表單驗證的方式有哪幾種

html5中表單驗證的方式有哪幾種

Jan 23, 2022 pm 04:30 PM
html5表單驗證

表單驗證方式:1、在表單控制項中將required特性設為true;2、在表單控制項上設定pattern特性,井賦予適當的符合規則;3、在表單控制項上設定maxLength特性; 4.為表單控制項設定min和max特性,並賦予允許的最小值和最大值。

html5中表單驗證的方式有哪幾種

 本教學操作環境:windows7系統、HTML5版、Dell G3電腦。

今天來談談HTML5的表單驗證。在深人探討表單驗證之前,讓我們先思考一下表單驗證的真實意義。就其核心而言,表單驗證是一套系統,它為終端用戶檢測無效的控制項資料並標記這些錯誤。換言之,表單驗證就是在表單提交伺服器前對其進行一系列的檢查並通知使用者修正錯誤。

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

是一種最佳化。

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

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

話雖如此,HTML5還是引進了八種用於驗證表單控制項的資料正確性的方法。讓我們依序了解一下,不過先要介紹一下用於回饋驗證狀態的ValidityState物件。

在支援HTML5表單驗證的瀏覽器中,可以透過表單控制項來存取ValidityState物件:

var valCheck = document.myForm.myInput.validity;

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

呼叫方式如下:

valCheck.valid

執行完畢,我們會得到一個布林值,它表示表單控制項是否已通過了所有的驗證限制條件。可以把valid特性看做是最終驗證結果:如果所有八個約束條件都通過了,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 credit
card 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("")即可。

相关推荐:《html视频教程

以上是html5中表單驗證的方式有哪幾種的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
html內部的反應:集成了動態網頁的JavaScripthtml內部的反應:集成了動態網頁的JavaScriptApr 16, 2025 am 12:06 AM

要將React集成到HTML中,需遵循以下步驟:1.在HTML文件中引入React和ReactDOM。 2.定義一個React組件。 3.使用ReactDOM將組件渲染到HTML元素中。通過這些步驟,可以將靜態HTML頁面轉化為動態、交互式的體驗。

反應的好處:性能,可重用性等等反應的好處:性能,可重用性等等Apr 15, 2025 am 12:05 AM

React受歡迎的原因包括其性能優化、組件復用和豐富的生態系統。 1.性能優化通過虛擬DOM和diffing機制實現高效更新。 2.組件復用通過可複用組件減少重複代碼。 3.豐富的生態系統和單向數據流增強了開發體驗。

反應:創建動態和交互式用戶界面反應:創建動態和交互式用戶界面Apr 14, 2025 am 12:08 AM

React是構建動態和交互式用戶界面的首選工具。 1)組件化與JSX使UI拆分和復用變得簡單。 2)狀態管理通過useState鉤子實現,觸發UI更新。 3)事件處理機制響應用戶交互,提升用戶體驗。

React與後端框架:比較React與後端框架:比較Apr 13, 2025 am 12:06 AM

React是前端框架,用於構建用戶界面;後端框架用於構建服務器端應用程序。 React提供組件化和高效的UI更新,後端框架提供完整的後端服務解決方案。選擇技術棧時需考慮項目需求、團隊技能和可擴展性。

HTML和React:標記與組件之間的關係HTML和React:標記與組件之間的關係Apr 12, 2025 am 12:03 AM

HTML和React的關係是前端開發的核心,它們共同構建現代Web應用的用戶界面。 1)HTML定義內容結構和語義,React通過組件化構建動態界面。 2)React組件使用JSX語法嵌入HTML,實現智能渲染。 3)組件生命週期管理HTML渲染,根據狀態和屬性動態更新。 4)使用組件優化HTML結構,提高可維護性。 5)性能優化包括避免不必要渲染,使用key屬性,保持組件單一職責。

反應與前端:建立互動體驗反應與前端:建立互動體驗Apr 11, 2025 am 12:02 AM

React是構建交互式前端體驗的首選工具。 1)React通過組件化和虛擬DOM簡化UI開發。 2)組件分為函數組件和類組件,函數組件更簡潔,類組件提供更多生命週期方法。 3)React的工作原理依賴虛擬DOM和調和算法,提高性能。 4)狀態管理使用useState或this.state,生命週期方法如componentDidMount用於特定邏輯。 5)基本用法包括創建組件和管理狀態,高級用法涉及自定義鉤子和性能優化。 6)常見錯誤包括狀態更新不當和性能問題,調試技巧包括使用ReactDevTools和優

React和前端堆棧:工具和技術React和前端堆棧:工具和技術Apr 10, 2025 am 09:34 AM

React是一個用於構建用戶界面的JavaScript庫,其核心是組件化和狀態管理。 1)通過組件化和狀態管理簡化UI開發。 2)工作原理包括調和和渲染,優化可通過React.memo和useMemo實現。 3)基本用法是創建並渲染組件,高級用法包括使用Hooks和ContextAPI。 4)常見錯誤如狀態更新不當,可使用ReactDevTools調試。 5)性能優化包括使用React.memo、虛擬化列表和CodeSplitting,保持代碼可讀性和可維護性是最佳實踐。

React在HTML中的作用:增強用戶體驗React在HTML中的作用:增強用戶體驗Apr 09, 2025 am 12:11 AM

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具