溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

HTML5中怎么實(shí)現(xiàn)表單驗(yàn)證

發(fā)布時(shí)間:2021-07-26 14:04:31 來(lái)源:億速云 閱讀:151 作者:Leah 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)HTML5中怎么實(shí)現(xiàn)表單驗(yàn)證,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

  1. <!DOCTYPE html>  

  2. <form>  

  3.   <input id="text" pattern="^1[3-9]\d{9}$" required />  

  4.   <input id="button" type="submit" />  

  5. </form>  

  注意只有非空的表單才會(huì)使用正則驗(yàn)證,如果什么都不輸入的話,pattern不會(huì)被使用,所以還需要required協(xié)助。但是這個(gè)代碼彈出的提示是這樣的:
HTML5中怎么實(shí)現(xiàn)表單驗(yàn)證

這樣的提示文字只有猴子看得懂!所以我們還需要更友好的提示文字,使用setCustomValidity方法來(lái)定義。
運(yùn)行

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <!DOCTYPE html>  

  2. <form>  

  3.   <input id="text" pattern="^1[3-9]\d{9}$" required />  

  4.   <input id="button" type="submit" />  

  5. </form>  

  6. <script>  

  7. text.oninput=function(){   

  8.   text.setCustomValidity("");   

  9. };   

  10. text.oninvalid=function(){   

  11.   text.setCustomValidity("請(qǐng)不要輸入火星的手機(jī)號(hào)好嗎?");   

  12. };   

  13. </script>  

HTML5中怎么實(shí)現(xiàn)表單驗(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ì)彈出窗口,用戶(hù)體驗(yàn)極差,所以再給出一個(gè)手機(jī)端用HTML5的屬性來(lái)驗(yàn)證的示例:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <input id="name" name="name" placeholder="name" required="" tabindex="1" type="text">    

  2. <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}$">    

  3. <input id="subject" name="subject" placeholder="example@domain.com" required="" tabindex="2" type="text">    

  4.  // 主要用了HTML的一下屬性   

  5. // 1.placeholder 提供可描述輸入字段預(yù)期值的提示信息。 該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲   

  6. //得焦點(diǎn)時(shí)消失   

  7. //2.required 屬性規(guī)定必需在提交之前填寫(xiě)輸入字段   

  8. //3.pattern  是正則表達(dá)式,  里面可以直接填寫(xiě)正則表達(dá)式  

關(guān)于HTML5中怎么實(shí)現(xiàn)表單驗(yàn)證就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI