這篇文章給大家分享的是HTML5表單驗(yàn)證的詳細(xì)介紹,相信大部分人都還沒(méi)學(xué)會(huì)這個(gè)技能,為了讓大家更加了解,給大家總結(jié)了以下內(nèi)容,話不多說(shuō),一起往下看吧。
創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如崗?fù)?/a>等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致贊賞。HTML5對(duì)表單元素提供了patern屬性,它接受一個(gè)正則表達(dá)式。表單提交時(shí)這個(gè)正則表達(dá)式會(huì)被用于驗(yàn)證表單內(nèi)非空的值,如果控件的值不匹配這個(gè)正則表達(dá)就會(huì)彈出提示框,并阻止表達(dá)提交。提示框內(nèi)的文字可以使用setCustomValidity方法來(lái)自定義。
比如下面這個(gè)表單內(nèi),文本框只接受大陸的手機(jī)號(hào),輸入其它東西就無(wú)法提交
運(yùn)行
注意只有非空的表單才會(huì)使用正則驗(yàn)證,如果什么都不輸入的話,pattern不會(huì)被使用,所以還需要required協(xié)助。但是這個(gè)代碼彈出的提示是這樣的:
這樣的提示文字只有猴子看得懂!所以我們還需要更友好的提示文字,使用setCustomValidity方法來(lái)定義。
運(yùn)行
invalid事件會(huì)在表單submit事件之前觸發(fā),如果驗(yàn)證不通過(guò)的話就不會(huì)觸發(fā)表單的submit。而提交時(shí)會(huì)先驗(yàn)證所有表單元素是值是否有效。除了提交外還可以手動(dòng)調(diào)用checkValidity方法來(lái)執(zhí)行驗(yàn)證。
上面的例子中我直接對(duì)控件設(shè)置固定的提示其實(shí)不太好,有時(shí)候可能需要更詳細(xì)的提示信息,比如空的時(shí)候提示為空、太長(zhǎng)的時(shí)候提示太長(zhǎng)、非數(shù)字的時(shí)候提示非數(shù)字等。這些動(dòng)作可以通過(guò)程序驗(yàn)證后動(dòng)態(tài)地setCustomValidity來(lái)實(shí)現(xiàn)。
其實(shí)我覺(jué)得HTML5的這套API設(shè)計(jì)的很糟糕,雖然可以滿足基本需求,但還真不太實(shí)用。
手機(jī)頁(yè)面中表單提交用JavaScript驗(yàn)證信息 會(huì)彈出窗口,用戶體驗(yàn)極差,所以再給出一個(gè)手機(jī)端用HTML5的屬性來(lái)驗(yàn)證的示例:
// 主要用了HTML的一下屬性 // 1.placeholder 提供可描述輸入字段預(yù)期值的提示信息。 該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲 //得焦點(diǎn)時(shí)消失 //2.required 屬性規(guī)定必需在提交之前填寫輸入字段 //3.pattern 是正則表達(dá)式, 里面可以直接填寫正則表達(dá)式
以上就是HTML5表單驗(yàn)證的具體操作,代碼詳細(xì)清楚,如果在日常工作遇到這個(gè)問(wèn)題,希望你能通過(guò)這篇文章解決問(wèn)題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!