第六十七節,html表單元素

html表單元素css

 

學習要點:
  1.表單元素總彙
  2.表單元素解析html

本章主要探討HTML5中表單元素,表單元素用於獲取用戶的輸入數據。前端

 

一.表單元素總彙正則表達式

HTML5的表單中,提供了各類可供用戶輸入的表單控件。瀏覽器

          元素名稱                                        說明服務器

            form          表示HTML表單app

            input         表示用來收集用戶輸入數據的控件佈局

          textarea        表示能夠輸入多行文本的控件學習

           select         表示用來提供一組固定的選項測試

           option         表示提供提供一個選項

          optgroup        表示一組相關的option元素

           button         表示可用來提交或重置的表單按鈕(或通常按鈕)

          datalist        定義一組提供給用戶的建議值

          fieldset        表示一組表單元素

           legend         表示fieldset元素的說明性標籤

            label         表示表單元素的說明標籤

           output         表示計算結果

 

二.表單元素解析

1.<form>定義表單

解釋:<form>元素主要是定義自己是一組表單。

          元素屬性                               說明

       method                表示表單的發送方式:有POST和GET兩種,默認GET,GET方式發送明碼發送,在接收頁面的url能夠看到?表單元素名稱=元素值

               POST方式發送,爲加密的發送,接收頁面的url看不到表單信息

           action               表示表單提交的頁面,也就是接收表單的頁面

   enctype        表示瀏覽器對發送給服務器的數據所採用的編碼格式,只有上傳我文件是纔用到,multipart/form-data

               有三種:application/x-www-form-urlencoded(默認編碼,enctype        不能將文件上傳到服務器)、

               multipart/form-data (用於上傳文件到服務器)、

                 text/plain (未規範的編碼,不 建議使用,不一樣瀏覽器理解不一樣)

         name                 設置表單名稱,以便程序調用

        target                 設置提交時的目標位置:_blank、_parent、_self、_top,

                 也就是接收表單頁面以什麼方式打開,是新建頁面打開,仍是當前頁面打開,默認當前頁面打開

          autocomplete              設置瀏覽器記住用戶輸入的數據,實現自動完成表單。默認爲on自動完成,若是不想自動完成則設置off。就是輸入框記錄輸入過的信息

        novalidate            設置是否執行客戶端數據有效性檢查,後面課程講解。

<form method="get" name="rgj" action="2.html" enctype="multipart/form-data">
    用戶名:<input name="mch">
    <button>提交</button>
</form>

效果:

 

 

2.<input>表示用戶輸入數據,輸入框

解釋:<input>元素默認狀況會出現一個單行文本框,有五個屬性。

      屬性名稱                                    說明

     autofocus           讓光標聚焦在某個input元素上,讓用戶直接輸入,不用點擊輸入框,光標就在輸入框裏

     disabled              禁用input元素,也就是輸入框不能輸入內容

   autocomplete      單獨設置input元素的自動完成功能,就是輸入框記錄輸入過的信息

       form               讓表單外的元素和指定的表單掛鉤提交,也就是在表單外的輸入框要給表單form標籤掛鉤,數據才能提交出去

       type                input元素的類型,內容較多,將在下節課展開講解

        name               定義input元素的名稱,以便接收到相應的值

  value         設置輸入框默認值

聚焦光標

<form>
    用戶名:<input name="mch" autofocus>
    <button>提交</button>
</form>

效果:

 

禁用input元素,也就是輸入框不能輸入內容

<form>
    用戶名:<input name="mch" disabled>
    <button>提交</button>
</form>

效果:

 

 

 禁止自動完成,就是輸入框記錄輸入過的信息,若是表單全局作了設置,能夠在給輸入框作單獨的設置

<form>
    用戶名:<input name="mch" autocomplete="off">
    <button>提交</button>
</form>

 

設置輸入框默認值

<form>
    用戶名:<input name="mch" autocomplete="off" value="123">
    <button>提交</button>
</form>

效果:

 

表單外的input輸入框,也就是在表單外的輸入框要給表單form標籤掛鉤,數據才能提交出去,方法是輸入框form=表單id值,如<input name="email"form="register">

<form method="get" id="register">
     ...
</form>
<input name="email"form="register">

 

3.<label>添加說明標籤,將數框用<label>包起來,有兩個用途,一個是點擊用戶名能定位光標,一個是利於css樣式佈局

<form>
    <label>用戶名:<input name="mch" autocomplete="off" value="123"></label>
    <button>提交</button>
</form>

效果:

 

for屬性關聯輸入框,for值爲輸入框id值,關聯後點擊用戶名也能定位光標

<form>
    <label for="yhm">用戶名:</label>
    <input name="mch" id="yhm" value="123">
    <button>提交</button>
</form>

解釋:<label>元素能夠關聯input,讓用戶體驗更好。且更加容易設置CSS樣式。

 

4.<fieldset>對錶單進行編組

解釋:<fieldset>元素能夠將一些表單元素組織在一塊兒,造成一個總體。

     屬性名稱                                   說明

       name               給分組定義一個名稱

       form                讓表單外的分組與表單掛鉤,form 等於表單id值,這樣表單外的分組數據才能提交

     disabled               禁用分組內的表單,就是分組內的輸入框不能輸入內容

<form>
    <fieldset name="shur" disabled>
        <label for="yhm">用戶名:</label>
        <input name="mch" id="yhm" value="123">
    </fieldset>
    <button>提交</button>
</form>

 

效果:

 

 

5.<legend>添加分組說明標籤,給分組加上一個標題,寫在分組裏

<form>
    <fieldset name="shur" disabled>
        <legend>這是一個分組</legend>
        <label for="yhm">用戶名:</label>
        <input name="mch" id="yhm" value="123">
    </fieldset>
    <button>提交</button>
</form>

效果:

解釋:<legend>元素給分組加上一個標題。

 

6.<button>添加按鈕

<button type="submit">< button>

解釋:<button>元素添加一個按鈕,type屬性有以下幾個值:

      值名稱             屬性值                        說明

  type

              submit        表示按鈕的做用是提交表單,默認

               reset        表示按鈕的做用是重置表單,還原表單默認值,若是沒有默認值就是重置爲空

              button        表示按鈕爲通常性按鈕,沒有任何做用提交表單,按鈕,主要結合js使用

<form>
    <label for="yhm">用戶名:</label>
    <input name="mch" id="yhm">
    <button type="submit">提交</button>
    <button type="reset">重置</button>
    <button type="button">按鈕</button>
</form>

效果:

 

button的type屬性爲submit時,提交時還會提供額外的屬性。也就是提交時更改<form>標籤的屬性

      屬性名稱                                        說明

        form              指定按鈕關聯的表單,在表單外的提交,關聯到一個表單,屬性值爲<form>標籤的id值

    formaction            覆蓋form元素的action屬性,提教時更改<form>標籤的action屬性,formaction的值就會等於<form>標籤的action屬性

 

<form method="get" name="rgj" action="2.html" enctype="multipart/form-data">
    用戶名:<input name="mch">
    <button formaction="http://www.haosou.com">提交</button>
</form>

 

   formenctype       覆蓋form元素的enctype屬性,原理同上

    formmethod             覆蓋form元素的method屬性,原理同上

    formtarget               覆蓋form元素的target屬性,原理同上

 formnovalidate           覆蓋form元素的novalidate屬性,原理同上

 

表單外關聯提交,指定按鈕關聯的表單,在表單外的提交,關聯到一個表單,form屬性值爲<form>標籤的id值

<form method="get" id="jk" name="rgj" action="2.html" enctype="multipart/form-data">
    用戶名:<input name="mch">
</form>
<button form="jk">提交</button>

 

input元素詳解

 

 input元素的type屬性,輸入框

type屬性總彙

input元素能夠用來生成一個供用戶輸入數據的簡單文本框。在默認的狀況下,什麼樣的數據都可以輸入。而經過不一樣的屬性值,能夠限制輸入的內容。

           屬性名稱                                 說明

             text                 一個單行文本框,默認行爲

           password              隱藏字符的密碼框

            search               搜索框,在某些瀏覽器鍵入內容會出現叉標記取消

     submit、reset、button    生成一個提交按鈕、重置按鈕、普通按鈕

        number、range           只能輸入數值的框;只能輸入在一個數值範圍的框

       checkbox、radio           複選框,用戶勾選框;單選框,只能在幾個中選一個

         image、color              生成一個圖片按鈕,顏色代碼按鈕

       email、tel、url              生成一個檢測電子郵件、號碼、網址的文本框

 

     date、month、time、

       week、datetime、            獲取日期和時間

        datetime-local

 

            hidden               生成一個隱藏控件

             file                    生成一個上傳控件

 

input元素的屬性type值爲text時,輸入框

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text">
    <button>提交</button>
</form>

效果:

input元素的屬性type值爲text時,呈現的就是一個能夠輸入任意字符的文本框,這也是默認行爲。而且,還提供了一些額外的屬性。

屬性名稱                       屬性值                                 說明

 list                 <datalist>標籤的id值        指定爲文本框提供建議值的datalist元素,其值爲datalist元素的id值,就是給輸入框設置下拉

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" list="abc">
    <button>提交</button>
</form>
<datalist id="abc">
    <option>蘋果</option> <!--方法1,選擇蘋果輸入框輸入蘋果-->
    <option value="2">香蕉</option> <!--方法2,選擇香蕉輸入框輸入2-->
</datalist>

效果:

 

maxlength            最大輸入數             設置文本框最大字符長度

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" maxlength="5">
    <button>提交</button>
</form>

效果:

    

 

pattern              設置內容                   用於輸入驗證的正則表達式,輸入內容與設置內容相同才能提交

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" pattern="456789">
    <button>提交</button>
</form>

 效果:

 

placeholder                      設置輸入框提示內容                               輸入字符的提示,給輸入框寫一個提示信息

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" placeholder="請輸入用戶名">
    <button>提交</button>
</form>

 效果:

 

readonly                         無                                                      文本框處於只讀狀態,數據能夠提交

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" value="gffff" readonly>
    <button>提交</button>
</form>

 效果:

 

 

disabled                         無                                                      本框處於禁用狀態,數據不可提交

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" value="gffff" disabled>
    <button>提交</button>
</form>

 效果:

   

 

  size                            像素                                                     設置文本框寬度

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" size="100">
    <button>提交</button>
</form>

 效果:

   

 

value                           默認值                                                 設置文本框初始值

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text" value="456">
    <button>提交</button>
</form>

 效果:

 

 

required                        無                                                       代表用戶必須輸入一個值,不然沒法經過輸入驗證,提交會提示輸入信息

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="text"  required >
    <button>提交</button>
</form>

效果:

 

input元素的屬性type值爲password時,密碼框

<form method="get" name="rgj" action="2.html">
    用戶名:<input name="mch" type="password"  required >
    <button>提交</button>
</form>

效果:

input元素的屬性type值爲password時,通常用於密碼框的輸入,全部的字符都會顯示星號。 密碼框也有一些額外屬性。 

屬性名稱                 屬性值                             說明

maxlength          字符長度數        設置密碼框最大字符長度,超過設置的長度不能輸入

pattern                  設置密碼內容                    用於輸入驗證的正則表達式,輸入密碼與設置密碼不相同不能提交

placeholder             設置密碼框提示信息           輸入密碼的提示

readonly                 無                                 密碼框處於只讀狀態,默認值能夠提交

disabled          無                       文本框處於禁用狀態,不能提交

size                       像素                               設置密碼框寬度

value                    設置默認值                       設置密碼框初始值

required                無                                  代表用戶必須輸入同一個值,沒有輸入內容沒法提交,給出提示

注意:使用方法給輸入框同樣

 

input元素的屬性type值爲search時,搜索框

<form method="get" name="rgj" action="2.html">
    <input name="mch" type="search"  required >
    <button>搜索</button>
</form>

效果:

和文本框一致,在除火狐瀏覽器的其餘現代瀏覽器,會顯示一個叉來取消 搜索內容。額外屬性也和text輸入框一致。參照輸入框

 

input元素的屬性type值爲number時,帶輸入拖動框

<form method="get" name="rgj" action="2.html">
    <input type="number" name="xz" min="1" max="100" value="10">
    <button>提交</button>
</form>

效果:

 

input元素的屬性type值爲range時,不帶輸入拖動框

<form method="get" name="rgj" action="2.html">
    <input type="range" name="xz" min="1" max="100" value="10">
    <button>提交</button>
</form>

效果:

 

注意:以上兩種拖動框,不一樣瀏覽器可能顯示方式不一樣。生成一個數值範圍文本框,只是樣式是拖動式。兩種拖動框額外屬性以下:

屬性名稱                屬性值                                                 說明

list        <datalist>標籤的id值        指定爲文本框提供建議值的datalist元素,其值爲datalist元素的id值,詳情見輸入框list屬性

min             設置最小數值              設置可接受的最小值

max              設置最大數值              設定可接受的最大值

readonly          無                   設置文本框內容只讀

required          無                   代表用戶必須輸入一個值,不然沒法經過輸入驗證

step                     步長數                                               指定上下調節值的步長,好比設置2,拖動滑塊就是2468這樣2位步長的跨度

value            設置默認值              指定初始值

 

input元素的屬性type值爲date、month、time、week、datetime、datetime-local系列時,時間日期系統框

<form method="get" name="rgj" action="2.html">
    <input type="date">  <!--年月日-->
    <input type="month"> <!--年月-->
    <input type="time"> <!--時分-->
    <input type="week"> <!--年周-->
    <input type="datetime"> <!--年月日時分-->
    <input type="datetime-local"> <!--系統時區,年月日時分-->
    <button>提交</button>
</form>

效果:

實現文本框能夠獲取日期和時間的值,但支持的瀏覽器不完整。咱們測試Chrome 和Opera支持,其餘瀏覽器還沒有支持。因此,在獲取日期和時間,目前仍是推薦使用jQuery 等前端庫來實現日曆功能。額外屬性和number一致。

屬性名稱                屬性值                                                 說明

list        <datalist>標籤的id值        指定爲文本框提供建議值的datalist元素,其值爲datalist元素的id值,詳情見輸入框list屬性

min             設置最小數值              設置可接受的最小值

max              設置最大數值              設定可接受的最大值

readonly          無                   設置文本框內容只讀

required          無                   代表用戶必須輸入一個值,不然沒法經過輸入驗證

value            設置默認值              指定初始值

 

input元素的屬性type值爲color時,顏色選擇框

<form method="get" name="rgj" action="2.html">
    <input type="color" name="yse">
    <button>提交</button>
</form>

效果:

 

解釋:實現文本框獲取顏色的功能,最新的現代瀏覽器測試後IE不支持,其他的都能 顯示一個顏色對話框提供選擇。

 

input元素的屬性type值爲checkbox時,複選框,也就是多選框

<form method="get" name="rgj" action="2.html">
    音樂:<input type="checkbox" name="yse" value="5">
    體育:<input type="checkbox" name="tu" value="6">
    <button>提交</button>
</form>

效果:

 

input元素的屬性type值爲radio時,單選框

<form method="get" name="rgj" action="2.html">
    <input type="radio" name="yse" value="5"><input type="radio" name="yse" value="6"><button>提交</button>
</form>

效果:

複選框或單選框。額外屬性以下: 

屬性名稱               屬性值                    說明

checked               無            設置複選框、單選框是否爲勾選狀態

required              無            表示用戶必須勾選,不然沒法經過驗證,沒有勾選會給提示

value                   默認值          設置複選框、單選框勾選狀態時提交的數據。

 

input元素的屬性type值爲submit、reset、button時,生成按鈕

<form method="get" name="rgj" action="2.html">
    <input type="submit"> <!--生成一個提交按鈕-->
    <input type="reset">  <!--生成一個重置按鈕-->
    <input type="button" value="按鈕"> <!--生成一個普通按鈕-->
</form>

解釋:生成一個按鈕,三種模式:提交、重置和通常按鈕,若是是submit提交時,還提供了和<button>元素同樣的額外屬性:formaction、formenctype、formmethod、formtarget和formnovalidate。詳情見<button>元素額外屬性

 

input元素的屬性type值爲image時,圖片提交按鈕

<form method="get" name="rgj" action="2.html">
    <input type="text" name="sdf">
    <input type="image" src="723.png">
</form>

效果:

 

解釋:生成一個圖片按鈕,點擊圖片就實現提交功能,而且傳送了分區響應數據。圖片 按鈕也提供了一些額外屬性。

屬性名稱                   屬性值                          說明

 src              圖片路徑        指定要顯示圖像的URL

 alt               說明文字        提供圖片的文字說明

 width            像素          圖像的長度

 height           像素          圖像的高度

提交額外屬性formaction、formenctype、formmethod、formtarget 和formnovalidate。詳情見<button>元素額外屬性

 

input元素的屬性type值爲email、tel、url時,郵件地址框,電話框,網址框

<form method="get" name="rgj" action="2.html">
    <input type="email" name="sdf1"> <!--郵件地址框-->
    <input type="tel" name="sdf2"> <!--電話框-->
    <input type="ur" name="sdf3"> <!--網址框-->
    <button>提交</button>
</form>

效果:

解釋:email爲電子郵件格式、tel爲電話格式、url爲網址格式。但對於這幾種類型,瀏覽器支持是不一樣的email支持比較好,如今瀏覽器都支持格 式驗證;tel基本不支持;url支持通常,部分瀏覽器只要檢測到http://就能經過。額外屬性和text 一致。詳情見輸入框

 

input元素的屬性type值爲hidden時,隱藏框

<form method="get" name="rgj" action="2.html">
    <input type="hidden" name="id" value="1"> 
    <button>提交</button>
</form>

解釋:生成一個隱藏控件,通常用於表單提交時關聯主鍵ID提交,而這個數據做爲隱藏存在

 

input元素的屬性type值爲file時,上傳框

<form method="get" name="rgj" action="2.html">
    <input type="file" name="shch" accept="image/png,image/ipg">
    <button>提交</button>
</form>

效果:

 

解釋:生成一個文件上傳控件,用於文件的上傳。額外提供了一些屬性:

屬性名稱             屬性值           說明

accept            指定上傳類型       指定接受的MIME類型

required          無            代表用戶必須提供一個值,不然沒法經過驗證

 

<select> 下拉框

<form method="get" name="rgj" action="2.html">
    <select name="shuig">
        <option value="1">蘋果</option>
        <option value="2">香蕉</option>
        <option value="3">甘蔗</option>
    </select>
    <button>提交</button>
</form>

效果:

<optgroup>分組元素

<form method="get" name="rgj" action="2.html">
    <select name="shp">
        <optgroup label="水果類">
            <option value="1">蘋果</option>
            <option value="1">香蕉</option>
        </optgroup>
        <optgroup label="粗糧">
            <option value="1">大米</option>
            <option value="1">小麥</option>
        </optgroup>
    </select>
    <button>提交</button>
</form>

效果:

解釋:<select>下拉列表元素至少包含一個<option>子元素,才能造成有效的選項列表。<select>元素包含兩個子元素<option>項目元素和<optgroup>分組元素,還包含了一些額外屬性。 

<select>屬性名稱                屬性值                         說明

 name                  給下拉框設置一個名稱       設定提交時的名稱

 disabled               無               將下拉列表禁用

 form                  值爲< form >表單id值      將表單外的下拉列表與某個表單掛鉤

 size                  行數               設置下拉列表的高度

 multiple               無                 設置是否能夠多選

autofocus           無               獲取焦點

required             無               選擇驗證,設置後必須選擇才能經過

 

<textarea>文本框

<form method="get" name="rgj" action="2.html">
    <textarea name="wb" placeholder="請輸入您的內容" required></textarea>
    <button>提交</button>
</form>

效果:

 

 解釋:生成一個可變動大小的多行文本框。屬性以下:

 <textarea>屬性名稱              屬性值                            說明

 name                   名稱                設定提交時的名稱

 form                   值爲<form >標籤的id值       將表單外的多行文本框與某個表單掛鉤

 readonl                 無                 設置多行文本框只讀

 disabled                  無                 將多行文本框禁用

 maxlength                字符數              設置最大可輸入的字符長度

 autofocus               無                  獲取焦點

 placeholder              提示信息             設置輸入時的提示信息

 rows                    文本框行高數           設置行數

 cols                    文本框列寬高數            設置列數

 wrap                    soft和hard             設置文字長度超出文本框寬度時,是否插入換行符,有soft(否)和hard(是)兩種

 required                 無                設置必須輸入值,不然沒法經過驗證

 

output計算結果,計算兩個文本框之間的值

<form oninput="res.value = num1.valueAsNumber* num2.valueAsNumber">
    <input type="number" id="num1">x <input type="number" id="num2">
    <output for="num1 num2" name="res">
</form>

效果:

解釋:output就是計算兩個文本框之間的值,其實就是內嵌了JavaScript功能

 

輸入驗證

HTML5對錶單提供了輸入驗證檢查方式,但這種驗證仍是比較簡陋的,而且不一樣的瀏覽器支持的成熟度還不一樣。在大部分狀況 ,可能仍是要藉助jQuer 等前端庫來實現豐富的驗證功能和顯示效果。

輸入框驗證required,必須填寫一個值

<form method="get" name="rgj" action="2.html">
    <input type="text" required>
    <button>提交</button>
</form>

 

拖動框驗證,限定在某一個範圍內

<form method="get" name="rgj" action="2.html">
    <input type="number" min="10" max="100">
    <button>提交</button>
</form>

 

使用正則表達式 驗證

<form method="get" name="rgj" action="2.html">
    <input type="text" name="hm" placeholder="請輸入區號+座機" pattern="^[\d]{2,4}\-[\d]{6,8}$">
    <button>提交</button>
</form>

瀏覽器支持的成熟度還不一樣

 

禁止表單驗證novalidate

<form method="get" name="rgj" action="2.html" novalidate>
    <button>提交</button>
</form>
相關文章
相關標籤/搜索