DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5教程 >> HTML5表單元素 、 表單屬性 、 表單驗證
HTML5表單元素 、 表單屬性 、 表單驗證
編輯:HTML5教程     

【HTML5新表單】

1.type:

       - email :

              驗證邏輯不完整,只驗證是否包含 @ ;

       - search :

       - url :

              驗證邏輯不完整,只判斷是否包含 http:// ;

       - tel :

              電話號碼類型:

              只能在移動端有效果,會彈出數字鍵盤;只能輸入數字;

              pc端,可以輸入英文;

       - number :

              數字類型:3個屬性;

              min:

              max:

              step: 默認值1;

       - range :

              范圍類型:

              min:

              max:

              step:

              value:當前值;

       - color :

              顏色類型:取色器;

       - date :

              日期類型;

       - week : 周

       - month : 月

 

2.新表單元素

       - datalist元素

              定義備選項,與option

              與input text搭配使用,input的list屬性指向datalist的id;

              特點:

              數據與結構分離;預定義數據在datalist,結構input;

  <datalist id="mylist">
    <option>請選擇</option>
    <option>北京</option>
    <option>南京</option>
    <option>天津</option>
  </datalist>
  <input type="text" list="mylist"><br>

 

       - progress元素

              進度條;

              不同浏覽器效果不同;2屬性;

              - max 沒有min屬性,最小默認為0;

              - value 當前進度值;

<progress max="100" value="0" id="progress"></progress>
  <script>
    function mychange(){
        var progress = document.getElementById("progress");
        var value = progress.value;
        value++;
        progress.value = value;
        
        if(value == 100){
            clearTimeout(t);
        }
        
        t = setTimeout("mychange()",100);
    }
    mychange();
  </script>

 

       - meter元素

              刻度;

              - min

              - max

              - value

              - low  低預警值

              - high 高預警值

       - output元素

              輸出;

              for屬性

      

3.表單新屬性

       - placeholder屬性:

              類似於value; placeholder="請輸入用戶名";

              默認文本是灰色,並且 文本框獲取焦點,輸入時,默認文字自動消除;

       - multiple屬性:

              允許文本框中輸入多個值,用","隔開;

              只定義屬性名,沒有屬性值

       - autofocus屬性

              自動獲取焦點

              只定義屬性名,沒有屬性值

       - form屬性

              值等於表單元素的id值;

              允許表單元素定義在表單之外;

 

4.表單新驗證

       1.驗證屬性

              - required :

                     驗證為空;

                     提交時才提示;

              - pattern  :

                     不要斜線;pattern="[a-z]{6,12}"

                     使用正則表達式驗證元素值是否匹配;

                     驗證不了空;

                     提交時才提示;

              - min max

                     驗證當前元素值的最小值和最大值;

                     適用於type=number類型

                     提交時才提示;

              - minlength maxlength

                     驗證當前元素值的最小長度和最大長度;

                     提示是英文的;

                     minlength:提交時才提示;不是H5的新屬性;

                     maxlength:輸入時長度就不能大於指定值;

              - validity

                     表單驗證在H5中提供一個有效狀態;有效狀態通過validityState對象獲取到,

                     validityState對象可以通過validity屬性得到;

       2.驗證(有效)狀態

              validityState對象提供一系列有效狀態

              ***所有驗證狀態要配合驗證屬性使用;

              - valid

                     元素所有"驗證都通過"就返回true;

                     Elem.validity.valid;

             

              以下驗證返回true,都是驗證錯誤;

              - valueMissing

                     判斷當前元素值是否為空。返回true false;

                     配合required使用;

                     Elem.validity.valueMissing;

              - typeMismatch

                     判斷當前元素是否匹配類型type;返回true false;

                     配合email,number,url使用;

                     email.validity.typeMismatch;

              - patternMismatch

                     判斷當前元素是否匹配正則表達式;返回true false;

                     配合pattern使用;

                     Elem.validity.patternMismatch;

              - tooLong

                     判斷當前元素是否匹配長度;返回true false;

                     配合maxlength;

                     **使用maxlength屬性後,長度不會超出maxlength的值,tooLong很難出現這種情況;****邏輯完整性;

              - rangeUnderflow

                     輸入內容值小於min的值時,返回true;

                     只能匹配min 不能與max比較;

                     Elem.validity.rangeUnderflow;

              - stepMismatch

                     判斷當前元素值是否與step設置相同;

                     只能匹配step,不和min max比較;

                     Elem.validity.stepMismatch;

 

              - customError

                     配合setCustomValidity()方法使用;只要用了此方法,customError就返回true;

                     setCustomValidity():

                     作用:設置驗證失敗後的默認提示信息;

                     問題:一旦使用該方法修改默認提示信息後,即使輸入正確,錯誤提示信息依舊出現;

                     解決:當輸入正確時,調用該方法將信息設置為空"";

<!DOCTYPE html>
<html>
 <head>
  <title>表單驗證狀態(完整)</title>
  <meta charset="utf-8" />
 </head>

 <body>
  <form>
    用戶名:<input type="text" id="user" required><br>
    email地址:<input type="email" id="email"><br>
    密碼:<input type="text" id="pwd" pattern="^[a-zA-Z]{6,12}$"><br>
    確認密碼:<input type="text" id="repwd" maxlength="10"><br>
    年齡:<input type="number" id="age" min="10" max="20"><br>
    成績:<input type="number" id="score" min="60" max="100" step="10">
    <input type="submit" value="注冊">
  </form>
  <script>
    var user = document.getElementById("user");
    user.onblur = function(){
        if(user.validity.valueMissing){
            console.log("用戶名不能為空.");
        }
    }
    var email = document.getElementById("email");
    email.onblur = function(){
        if(email.validity.typeMismatch){
            console.log("email輸入格式錯誤.");
        }
    }
    var pwd = document.getElementById("pwd");
    pwd.onblur = function(){
        if(pwd.validity.patternMismatch){
            console.log("密碼輸入錯誤.");
        }
    }
    var repwd = document.getElementById("repwd");
    repwd.onblur = function(){
        if(repwd.validity.tooLong){
            console.log("密碼輸入過長.");
        }
    }
    var age = document.getElementById("age");
    age.onblur = function(){
        if(age.validity.rangeUnderflow){
            console.log("年齡過小,不符合!");
        }
    }
    var score = document.getElementById("score");
    score.onblur = function(){
        if(score.validity.valid){
            console.log("成績輸入正確.");
        }else if(score.validity.stepMismatch){
            console.log("成績輸入不符.");
        }
    }
  </script>
 </body>
</html>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved