HTML5 表單驗證失敗的提示語問題

前言
前端的童鞋在寫頁面時, 都不可避免的總會踩到 表單驗證 這個坑. 這時候, 我們就要跪了, 因為要寫一堆 js 來檢查. 但是自從 H5 出現(xiàn)后, 很多常見的 表達驗證 , 它都已經(jīng)幫我們實現(xiàn)了, 讓我們減輕了很多負(fù)擔(dān), 就好像下面的:
郵箱地址驗證:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <form action=""> <label > 郵箱: <input type="email"> </label> <input type="submit"> </form> </body> </html>
郵箱驗證是 H5 自身支持的, 但是我們要驗證的場景和情況是多種多樣的, 那該怎么辦? 用回 Js 嗎? 很明顯沒這么難受, 因為 H5 提供了 pattern 屬性, 讓我們自食其力! 我們可以在 pattern 指定正則表達式, 只要正則寫的好, 驗證就沒煩惱!
正則限定11位數(shù)字:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <form action=""> <label > 數(shù)字: <input type="text" pattern="^\d{11}$"> </label> <input type="submit"> </form> </body> </html>
問題
大家可以嘗試下, 在輸入非11位的數(shù)字, 都會報錯, 這就是 pattern 的功勞. 但是不知道大家發(fā)現(xiàn)了一個難受的現(xiàn)象沒? 就是如果咱們使用 pattern 的方式去驗證表單, 在驗證失敗時, 它的提示都是 請與所請求的格式保持一致 , 我的天, 我們的用戶怎么知道所請求的格式是什么鬼, 總不能讓他們?nèi)タ丛创a吧, 要真這樣, 我們連頁面都不用寫了, 直接讓他們把錢給我們得了, 開個玩笑~
解決方案
有問題, 咱們就得解決, 在面向谷歌編程許久, 終于覓得一良方:
oninvalid:提交的input元素的值為無效值時(這里是正則驗證失?。?,觸發(fā)
oninvalid事件。oninvalid屬于Form 事件。
setCustomValidity():這個是HTML5內(nèi)置的JS方法,用來自定義提示信息
原來可以通過 oninvalid 和 setCustomValidity 來自定義提示, 那這就好辦了, 修改源代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <form action=""> <label > 數(shù)字: <input type="text" pattern="^\d{11}$" oninvalid="setCustomValidity('請輸入11位數(shù)字')"> </label> <input type="submit"> </form> </body> </html>
結(jié)果:
終于不是那個難受的"格式"了, 現(xiàn)在表單驗證提示已經(jīng)很明確的告訴我們, 這里應(yīng)該輸入的是什么樣的數(shù)據(jù), 這樣用戶就能更好的修改自己的輸入了!
以上所述是小編給大家介紹的HTML5 表單驗證失敗的提示語問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
- 這篇文章主要介紹了HTML5表單驗證特性的一些知識點,本文通過實例代碼截圖的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-10
- 很多朋友進行表單驗證的時候,都是自己用jquery或者js手工驗證,或者用一下jquery插件進行驗證。感覺html5自帶驗證不是很好用,下面小編給大家分享使用純html5編寫的一個表2017-09-12
- 這篇文章主要介紹了使用HTML5和CSS3表單驗證功能,需要的朋友可以參考下2017-05-05
- 在HTML5 中,在增加了大量的表單元素與屬性的同時,也增加了大量在提交時對表單與表單內(nèi)新增元素進行內(nèi)容有效性驗證的功能,接下來我們來講一下自動驗證,需要的朋友參考2017-01-11
HTML5利用約束驗證API來檢查表單的輸入數(shù)據(jù)的代碼實例
這篇文章不會去討論簡單的input type,本文想把重點放在HTML5表單驗證機制上。主要介紹是HTML5是如何利用約束驗證API來檢查表單的輸入數(shù)據(jù)的,當(dāng)然,本文會涉及到很多其它2016-12-20html5的input的required使用中遇到的問題及解決方法
這篇文章主要介紹了h5的input的required使用中遇到的問題及解決方法,文中給大家介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧2018-04-24html5中valid、invalid、required的定義
HTML5的出現(xiàn)為我們提供一些屬性,不用編寫js和正則即可解決這個檢驗表單內(nèi)容,下面為大家介紹下valid、invalid、required的定義2014-02-21wordpress添加Html5的表單驗證required方法小結(jié)
這篇文章主要介紹了wordpress添加Html5的表單驗證required方法小結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參2020-08-18