溫馨提示×

溫馨提示×

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

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

HTML5表單驗證實例

發(fā)布時間:2020-05-12 16:48:33 來源:億速云 閱讀:161 作者:Leah 欄目:web開發(fā)

這篇文章給大家分享的是HTML5表單驗證的詳細(xì)介紹,相信大部分人都還沒學(xué)會這個技能,為了讓大家更加了解,給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

HTML5對表單元素提供了patern屬性,它接受一個正則表達(dá)式。表單提交時這個正則表達(dá)式會被用于驗證表單內(nèi)非空的值,如果控件的值不匹配這個正則表達(dá)就會彈出提示框,并阻止表達(dá)提交。提示框內(nèi)的文字可以使用setCustomValidity方法來自定義。
  比如下面這個表單內(nèi),文本框只接受大陸的手機(jī)號,輸入其它東西就無法提交
運行

<!DOCTYPE html>
<form>
  <input id="text" pattern="^1[3-9]\d{9}$" required />
  <input id="button" type="submit" />
</form>

注意只有非空的表單才會使用正則驗證,如果什么都不輸入的話,pattern不會被使用,所以還需要required協(xié)助。但是這個代碼彈出的提示是這樣的:

HTML5表單驗證實例

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

<!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>

HTML5表單驗證實例

invalid事件會在表單submit事件之前觸發(fā),如果驗證不通過的話就不會觸發(fā)表單的submit。而提交時會先驗證所有表單元素是值是否有效。除了提交外還可以手動調(diào)用checkValidity方法來執(zhí)行驗證。
  上面的例子中我直接對控件設(shè)置固定的提示其實不太好,有時候可能需要更詳細(xì)的提示信息,比如空的時候提示為空、太長的時候提示太長、非數(shù)字的時候提示非數(shù)字等。這些動作可以通過程序驗證后動態(tài)地setCustomValidity來實現(xiàn)。
  其實我覺得HTML5的這套API設(shè)計的很糟糕,雖然可以滿足基本需求,但還真不太實用。

手機(jī)頁面中表單提交用JavaScript驗證信息 會彈出窗口,用戶體驗極差,所以再給出一個手機(jī)端用HTML5的屬性來驗證的示例:

<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ù)期值的提示信息。 該提示會在輸入字段為空時顯示,并會在字段獲   
//得焦點時消失   
//2.required 屬性規(guī)定必需在提交之前填寫輸入字段   
//3.pattern  是正則表達(dá)式,  里面可以直接填寫正則表達(dá)式

HTML5表單驗證實例

HTML5表單驗證實例

以上就是HTML5表單驗證的具體操作,代碼詳細(xì)清楚,如果在日常工作遇到這個問題,希望你能通過這篇文章解決問題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

AI