HTML5 novalidate 屬性
HTML5內建了很多表單驗證規則,比如為input文字框新增required屬性即可實現必需性驗證。
如果提交表單的時候文字框為空,那麼就會彈出報錯警告框,非常方便。
但是在實際應用中,可能需要禁用這個內建的表單驗證效果。
novalidate屬性的作用就會得以體現,novalidate有no和validate兩個單詞合成:
(1).no:翻譯成漢語是"不"或者"禁止"的意思。
(2).validate:翻譯成漢語是"驗證"或者"確認"的意思。
顧名思義,novalidate屬性可以用於禁止表單驗證,此屬性可以用於form元素。
語法結構:
[HTML] 純文字檢視 複製程式碼<elem novalidate>
瀏覽器支援:
(1).IE9+瀏覽器支援此屬性。
(2).edge瀏覽器支援此屬性。
(3).谷歌瀏覽器支援此屬性。
(4).火狐瀏覽器支援此屬性。
(5).opera瀏覽器支援此屬性。
(6).safria瀏覽器支援此屬性。
在對此屬性進行程式碼例項演示之前,首先要解決一個問題,那就是此屬性存在的必要性。
第一種可能,表單元素或者整個表單確實不需要進行驗證,所以採用此屬性。
第二種可能,內建的表單驗證可能不能滿足實際需求,所以要將其禁用,採用自定義方式。
當然不同的情況有不同的考量,本文不可能面面俱到,下面通過程式碼例項演示第一種和第二種。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body{margin:50px;} </style> </head> <body> <form novalidate> <label for="email"> 郵箱:</label> <input type="email" id="email" required name="email"/> <input type="submit" value="提交"> </form> </body> </html>
上面程式碼中,郵箱域具有required屬性,預設它是必填的,否則提交表單的時候會彈出提示。
但是由於為form元素新增了novalidate屬性,於是form下的所有表單元素預設都不會進行驗證。
所以,點選提交表單也不會彈出郵箱域不能為空的報錯提示。
應用此屬性後會帶來如下幾個方面的影響:
(1).表單提交時,內建的驗證規則會失效,比如必需性驗證或者型別驗證不起作用。
(2).表單提交時,invalid等事件也會失效。
(3).但是對於與表單元素狀態相關的屬性或者方法並不會失效,比如checkValidity方法與validity屬性。
下面看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body{margin:50px;} #error{ display:none; color:red; } </style> <script> window.onload=function(){ let email=document.getElementById("email"); let obt=document.getElementById("bt"); let error=document.getElementById("error"); obt.onclick=function(){ let v=email.validity; if(true === v.valueMissing){ error.style.display="inline-block"; error.innerHTML="欄位不能為空"; email.focus(); return false; }else if(true === v.patternMismatch){ error.style.display="inline-block"; error.innerHTML="請輸入3-8位數字"; email.focus(); return false; } } } </script> </head> <body> <form action="http://www.softwhy.com/" novalidate> <input type="email" id="email" required pattern="^\d{3,8}$"/> <span id="error">郵箱不能為空</span> <br/> <input type="submit" id="bt" value="提交表單"> </form> </body> </html>
為form元素新增novalidate屬性,於是當提交表單時,內建的驗證規則會失效,郵箱域為空也不會報錯。
但是與表單元素驗證狀態相關的屬性依然有效,比如validity屬性,可以利用此屬性來自定義表單驗證效果。
關於validity屬性更多內容可以參閱JavaScript validity 屬性一章節。
相關文章
- HTML5 Audio & Video 屬性解析HTMLIDE
- html5/css3新增屬性HTMLCSSS3
- 你瞭解HTML5的download屬性嗎?HTML
- [譯] HTML5 data 屬性規則使用 jQuery Validate 外掛HTMLjQuery
- HTML5中新新增的表單屬性有哪些?HTML
- CMake 屬性之全域性屬性
- defer 屬性和 async 屬性
- [20240228]約束novalidate.txt
- HTML5之全域性屬性 (宣告:內容節選自《HTML 5從入門到精通》)HTML
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目錄屬性
- CMake 屬性之目標屬性
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- CSS字型屬性和文字屬性詳解CSS
- Python 類的屬性與例項屬性Python
- python物件屬性管理(2):property管理屬性Python物件
- 根據屬性字串獲取屬性值字串
- CAD屬性編輯操作——物件屬性教程物件
- cssRules 屬性CSS
- previousElementSibling 屬性
- translucent屬性
- parentRule 屬性
- parentStyleSheet屬性
- cssText 屬性CSS
- Property屬性
- 私有屬性
- background屬性
- allowfullscreen 屬性
- ref屬性
- HTML 屬性HTML
- onreadystatechange 屬性
- DOM屬性
- jQuery 屬性jQuery
- background 屬性
- 好程式設計師web前端詳解HTML5中download屬性的應用程式設計師Web前端HTML
- jQuery設定disabled屬性與移除disabled屬性jQuery
- WPF 之 依賴屬性與附加屬性(五)
- 框架(frameset),全域性屬性框架