HTML5對表單元素提供了patern屬性,它接受一個html' target='_blank'>正則表達(dá)式。表單提交時這個正則表達(dá)式會被用于驗(yàn)證表單內(nèi)非空的值,如果控件的值不匹配這個正則表達(dá)就會彈出提示框,并阻止表達(dá)提交。提示框內(nèi)的文字可以使用setCustomValidity方法來自定義。
比如下面這個表單內(nèi),文本框只接受大陸的手機(jī)號,輸入其它東西就無法提交
運(yùn)行
<!DOCTYPE html><form> <input id="text" pattern="^1[3-9]/d{9}$" required /> <input id="button" type="submit" /></form>注意只有非空的表單才會使用正則驗(yàn)證,如果什么都不輸入的話,pattern不會被使用,所以還需要required協(xié)助。但是這個代碼彈出的提示是這樣的:

這樣的提示文字只有猴子看得懂!所以我們還需要更友好的提示文字,使用setCustomValidity方法來定義。
運(yùn)行
<!DOCTYPE html><form> <input id="text" pattern="^1[3-9]/d{9}$" required /> <input id="button" type="submit" /></form><script>text.oninput=function(){ text.setCustomValidity(""); }; text.oninvalid=function(){ text.setCustomValidity("請不要輸入火星的手機(jī)號好嗎?"); }; </script>
invalid事件會在表單submit事件之前觸發(fā),如果驗(yàn)證不通過的話就不會觸發(fā)表單的submit。而提交時會先驗(yàn)證所有表單元素是值是否有效。除了提交外還可以手動調(diào)用checkValidity方法來執(zhí)行驗(yàn)證。
上面的例子中我直接對控件設(shè)置固定的提示其實(shí)不太好,有時候可能需要更詳細(xì)的提示信息,比如空的時候提示為空、太長的時候提示太長、非數(shù)字的時候提示非數(shù)字等。這些動作可以通過程序驗(yàn)證后動態(tài)地setCustomValidity來實(shí)現(xiàn)。
其實(shí)我覺得HTML5的這套API設(shè)計(jì)的很糟糕,雖然可以滿足基本需求,但還真不太實(shí)用。
手機(jī)頁面中表單提交用JavaScript驗(yàn)證信息 會彈出窗口,用戶體驗(yàn)極差,所以再給出一個手機(jī)端用HTML5的屬性來驗(yàn)證的示例:
<input id="name" name="name" placeholder="name" required="" tabindex="1" type="text"><input id="email" name="email" placeholder="telephone" required="" tabindex="2" type="text" pattern="(^(/d{3,4}-)?/d{7,8})$|^(13|15|18|14)/d{9}$"><input id="subject" name="subject" placeholder="example@domain.com" required="" tabindex="2" type="text"> // 主要用了HTML的一下屬性 // 1.placeholder 提供可描述輸入字段預(yù)期值的提示信息。 該提示會在輸入字段為空時顯示,并會在字段獲 //得焦點(diǎn)時消失 //2.required 屬性規(guī)定必需在提交之前填寫輸入字段 //3.pattern 是正則表達(dá)式, 里面可以直接填寫正則表達(dá)式

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請關(guān)注PHP !
相關(guān)推薦:
通過HTML5移動開發(fā)實(shí)現(xiàn)圖片壓縮上傳的功能
HTML5的contenteditable屬性解析
HTML5 實(shí)現(xiàn)訪問本地文件的方法
以上就是HTML5表單驗(yàn)證的解析的詳細(xì)內(nèi)容,更多請關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選