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

首頁 > 編程 > HTML > 正文

HTML5利用約束驗證API來檢查表單的輸入數據的代碼實例

2024-08-26 00:19:18
字體:
來源:轉載
供稿:網友

HTML5對于表單有著極大程度的優化,無論是語義,小部件,還是數據格式的驗證。我猜你肯定會以瀏覽器兼容作為借口不愿意使用這些“新功能”,但這絕不應該成為使你停滯不前的原因,況且還有像Modernizr和ployfill這樣的工具庫幫助你在不支持Html5的瀏覽器上進行回退處理。當你真正試著使用這些表單的新功能時,我保證你會愛上它。如果說唯一的缺陷,就是提示框的樣式是瀏覽器默認的,你無法改變,好吧,如果你相信瀏覽器廠商的設計師的審美水平的話(我相信他們的設計水平比絕大部分普通人要好,如果不考慮風格兼容的話),抓緊學就對了!

原生驗證

input type

HTML5中為數據格式驗證提供了很多原生的支持,例如:

<input type='email'/>

當點擊提交按鈕時,如果你輸入的格式不符合email,則會導致無法提交,瀏覽器會提示你錯誤信息。

比如在chrome下:

html5表單提交驗證,html5,表單驗證,提示,html5的表單驗證

注意:

1、僅當你提交的時候會觸發瀏覽器的驗證

2、不同瀏覽器提示信息的行為樣式不一樣

3、當有多個input不符合要求時,只會提示一個錯誤,一般會提示表單中相對較前的Input的

不要理所應當的認為當input的type等于tel的時候,如果你輸入的不是電話號碼格式,在提交時也會被瀏覽器的阻擋并提示錯誤信息,type=’tel’在PC端只起到語義的作用,在移動端可以使產生的鍵盤為純數字鍵盤,并不能起到數據驗證的作用。

pattern

你可以使用pattern屬性來對瀏覽器不提供原生驗證的數據格式設置自定義格式驗證。pattern屬性的值是一個正則表達式(字符串):

<input type='tel' pattern='[0-9]{11}'        if(this.value.length > 3){ // 判斷條件完全自定義            input.setCustomValidity('格式不正確');        }else {            input.setCustomValidity('')        } });

每次鍵盤輸入,代碼都會判斷格式是否正確,然后調用setCustomValidity設置validationMessage的值。不要妄想每按下鍵瀏覽器都會提示你結果是否正確,瀏覽器只有在點擊提交按鈕的時候才會提示validationMessage里的值(如果有的話)。

如果你還沒有走思的話,一定會問,既然這樣,為什么要為input綁定鍵盤事件,每輸入一下都要進行判斷呢?直接為表單綁定提交事件,在提交時再判斷多好,別急,這么做是有好處的。

隨著輸入判斷格式與樣式

作為用戶,我們當然想在得知我輸入了錯誤的格式之后,文本框變紅(或者有別的提示)。而在我每次輸入一個字符,如果對了,文本框就恢復正常。我們可以使用CSS偽類來實現這個功能:

    input:required {            background-color: #FFE14D;        }    /*這個偽類通過validationMessage屬性進行判斷*/    input:invalid {        border: 2px solid red;    }

上面的required偽類會給所以必填但值空的input提供一個黃色的背景色,而下面的invalid偽類則會為所有未通過驗證的input添加一個2px的紅邊邊。我們現在給我們的Input框加上input類即可。

這些偽類的判斷條件正與瀏覽器判斷你能否提交表單的條件一樣,看validationMessage里的值,所以,我們上面設置每次鍵盤輸入事件都會觸發一次判斷從而改變CSS偽類樣式的渲染,用意正在于此。

更好的用戶體驗

還有一個缺點,就是當一個input設置為required的時候,在初始化時,因為其本身是空的,所以invalid偽類會對它起作用,這不是我們想看到的,因為我們什么還都沒有干。

我們可以并在這些偽類前加上父選擇器.invalid,這樣,只有在父元素具有invalid類時,這些偽類才會起作用??梢栽O置一個submit事件,在表單提交因驗證失敗后,會觸發input的invalid事件,給form添加invalid類:

form.addEventListener('invalid', function() {this.className = 'invalid'}, true)因為invaild是Input的事件,而不是form的事件,所以這里我們設置第三個參數為true采用事件捕獲的方式處理之。這樣,就大功告成了。

最終實例

好了,現在是時候總結一下我們所學的知識并創造最佳實踐了:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>form</title>    <style>        input:required{            background-color: #DCD4CE;        }        .invalid input:invalid{            border: 2px solid red;        }    </style></head><body><form id="form">    <label>email:<input type="email" required id="email"></label>    <label>IDCard:<input required id="IDCard"></label>    <input type="submit" id="submit"></form><script>    var email = document.getElementById('email');    var IDCard = document.getElementById('IDCard');    var form = document.getElementById('form');    IDCard.addEventListener('input', function () {        if(this.value.length != 6) {            this.setCustomValidity('IDCard的長度必須為6')        }else{            this.setCustomValidity('')        }    });    form.addEventListener('invalid', function () {        this.className = 'invalid';    }, true)</script></body></html>

運行后截圖如下:

html5表單提交驗證,html5,表單驗證,提示,html5的表單驗證

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜国产成人av电影男同| 国产精品久久久久久久久久久久| xxav国产精品美女主播| 国产日韩欧美影视| 色悠久久久久综合先锋影音下载| 92福利视频午夜1000合集在线观看| 精品一区二区三区四区| 97视频网站入口| 欧美日韩爱爱视频| 91亚洲精品视频| 欧美在线视频导航| 人人澡人人澡人人看欧美| 国产精品美女视频网站| 国内伊人久久久久久网站视频| 亚洲人成啪啪网站| 2023亚洲男人天堂| 国产欧美一区二区三区在线| 亚洲摸下面视频| 97国产suv精品一区二区62| 最新中文字幕亚洲| 亚洲四色影视在线观看| 午夜美女久久久久爽久久| 在线成人一区二区| 国内精品视频一区| 91免费电影网站| 国产精品国产三级国产专播精品人| 国产精品草莓在线免费观看| 成人97在线观看视频| 亚洲人线精品午夜| 爽爽爽爽爽爽爽成人免费观看| 欧美裸体xxxx极品少妇软件| 精品视频在线播放| 亚洲精品日韩在线| 亚洲欧美变态国产另类| 日韩av片电影专区| 国产精品免费电影| 成人性生交大片免费看视频直播| 欧美成人免费观看| 日韩有码在线观看| 中文字幕av一区二区| 国产欧亚日韩视频| 亚洲男女性事视频| 日韩欧美中文字幕在线播放| 久久久国产精彩视频美女艺术照福利| 久久亚洲精品中文字幕冲田杏梨| 国产一区二区三区在线视频| 国产精品久久久久久久久久免费| 亚洲国产精品悠悠久久琪琪| 欧美日韩国产综合视频在线观看中文| 欧美在线观看视频| 日韩最新在线视频| 欧美日韩一区二区三区在线免费观看| 日韩欧美国产免费播放| 亚洲精品一二区| 久久亚洲影音av资源网| 亚洲自拍偷拍网址| 亚洲欧美资源在线| 91精品国产色综合久久不卡98| 色狠狠av一区二区三区香蕉蜜桃| 欧美日韩另类字幕中文| 91中文字幕一区| 亚洲成人999| 性金发美女69hd大尺寸| 国外成人在线直播| 亚洲一区久久久| 成人福利网站在线观看11| 91精品国产高清久久久久久91| 成人av.网址在线网站| 亚洲成人久久久久| 永久免费精品影视网站| 亚洲人成电影网站色www| 综合136福利视频在线| 欧美视频一区二区三区…| 久99久在线视频| 性金发美女69hd大尺寸| 日韩av在线一区二区| 亚洲精品日韩激情在线电影| 久久国产精品首页| 日本免费久久高清视频| 欧美日韩视频免费播放| 欧美猛交免费看| 日韩精品在线影院| 欧美日韩一区二区三区在线免费观看| 日本亚洲欧洲色α| 欧美一区二区视频97| 国产在线视频一区| 欧美黑人一级爽快片淫片高清| 亚洲欧洲成视频免费观看| www亚洲精品| 91精品国产高清| 91深夜福利视频| 精品成人69xx.xyz| 亚洲精品视频免费在线观看| 久久亚洲国产精品| 成人h视频在线| 久热99视频在线观看| 亚洲自拍偷拍色图| 久久不射热爱视频精品| 色偷偷av一区二区三区乱| 日日噜噜噜夜夜爽亚洲精品| 91精品视频网站| 在线观看亚洲区| 欧美精品一区在线播放| 久久久久久久爱| 日韩大片免费观看视频播放| 欧美性在线观看| 午夜精品久久久久久久男人的天堂| 国产成人在线亚洲欧美| 欧美日韩美女在线| 午夜免费久久久久| 伊人久久大香线蕉av一区二区| 日韩精品视频免费专区在线播放| 日韩中文字幕在线观看| 中文字幕亚洲欧美| 国产精品青青在线观看爽香蕉| 国产有码一区二区| 91免费看国产| 91亚洲精品久久久久久久久久久久| 日韩精品在线第一页| 久久久久亚洲精品成人网小说| 久久精品在线播放| 欧美黑人性生活视频| 国产精品www| 亚洲最大福利视频网| 国产欧美一区二区三区四区| 日韩免费中文字幕| 亚洲精品美女在线| 亚洲欧美中文在线视频| 国产精品丝袜一区二区三区| 色777狠狠综合秋免鲁丝| 国产精品99久久久久久久久| 精品久久久久久久久久久久久久| 日本高清+成人网在线观看| 国内久久久精品| 97久久精品人人澡人人爽缅北| 日韩资源在线观看| 91精品91久久久久久| 日韩av电影中文字幕| 97精品一区二区三区| 国产精品久久久久国产a级| 欧美老女人性视频| 久久久久久久久久婷婷| 亚洲石原莉奈一区二区在线观看| 日韩欧美中文字幕在线观看| 中文字幕久久久| 热门国产精品亚洲第一区在线| 久久免费国产精品1| 中文字幕亚洲综合久久| 欧美中文在线视频| 国产精品18久久久久久麻辣| 91天堂在线视频| 亚洲成人黄色在线观看| 精品偷拍一区二区三区在线看| 日韩av在线免费观看| 啊v视频在线一区二区三区| 97免费中文视频在线观看| 国产精品永久免费视频| 亚洲人成电影网站色xx| 久久久亚洲福利精品午夜| 亚洲男人av在线| 亚洲欧美精品中文字幕在线| 91精品国产综合久久久久久蜜臀| 精品中文字幕在线观看| 亚洲性av网站|