H5自帶表單驗證


HTML5自帶的表單驗證

轉載:https://www.web-tinker.com/article/20781.html

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

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

 

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

  這樣的提示文字只有猴子看得懂!所以我們還需要更友好的提示文字,使用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("請不要輸入火星的手機號好嗎?");
};
</script>

 



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

 

 


 

more

如果想了解更多,這里有一篇轉自h5表單驗證點擊跳轉

作者:匡文旺 QQ:674037815 
出處:http://www.cnblogs.com/wenwang 
本文版權歸【簡簡單單就好】和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

HTML5表單及其驗證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM