1. 程式人生 > >HTML5:表單

HTML5:表單

表單簡介

表單標籤對‘<form>’是一個“塊級元素”。表單標籤的內容通常是“表單元素”+“提交按鈕”的形式。它雖然和‘<div>’標籤一樣屬於“塊級元素”,但它卻有自己的實際用處,也就是若不將“表單元素”放置於表單標籤‘<form>’中,那某些表單元素將會失效,如:“提交”按鈕和“重置”按鈕。

表單屬性

  • name:規定表單的名稱

  • action:規定當提交表單時向何處傳送表單資料,它的屬性值應該是一個“URL”

  • method:規定用於傳送 form-data 的 HTTP 方法,值為:get/post

  • target:規定在何處開啟“action”中設定的URL。有以下值(_blank、_self、_parent、_top、frame的name)

  • enctype:規定在傳送到伺服器之前應該如何對錶單資料進行編碼,有以下值:

    • application/x-www-form-urlencoded(預設,在傳送前編碼所有字元);
    • multipart/form-data(不對字元編碼,在使用包含檔案上傳控制元件的表單時,必須使用該值;
    • text/plain(空格轉換為 “+” 加號,但不對特殊字元編碼);
  • autocomplete:規定是否啟用表單的自動完成功能,有以下值:on/off

  • novalidate:如果使用該屬性,則提交表單時不進行html5自帶的驗證。

‘label’標籤

表單中用於顯示錶單欄位的標籤,可以讓使用者知道該行表單元素的作用,它屬於“行級元素”。和‘<span>

’標籤不一樣,它配合後面學習的其它表單元素可以實現一些作用上的關聯。所以,標準的表單編寫都需要在表單元素前加上一對‘<label>’標籤,內容需寫上標籤後表單元素的作用。

<form>
    <label>賬號:</label><br>
    <label>密碼:</label><br>
</form>

呈現效果如下:



‘textarea’標籤

<textarea>’標籤是一個可以輸入多行文字的標籤對,它同樣是一個“行內塊級標籤”。

textarea 標籤常用屬性

  • cols:設定行數

  • rows:設定列數

  • placeholder:設定佔位符

程式碼示例

<form>
    <textarea rows="5" cols="30" placeholder="請輸入您的個性簽名"></textarea>
</form>

呈現效果:

這裡寫圖片描述

‘select’標籤

通過‘<select>’標籤可以建立單選和多選的下拉選單。可以通過“size”屬性設定該標籤在一個選項選單中可見的選項個數,當它的值設為“1”時,將顯示為預設的‘<select>’下拉選單的樣式,‘<option>’是它必須的子選單,否則將不能提供任何可選項,而‘<option>’標籤通常需要具有一個“value”屬性,以便於在做資料操作時能準確地通過該屬性值取到對應標籤的內容。

‘select’標籤常用屬性

  • autofocus: 規定在頁面載入後文本區域自動獲得焦點。

  • disabled:規定禁用該下拉列表。

  • multiple:規定可以選擇多個選項。

  • name:規定下拉列表的名稱。

  • required:規定文字域是必填的。

程式碼示例

<form>
    <label>請選擇您喜歡的城市:</label>
    <select required="required" multiple="multiple">
        <option value="1">北京</option>
        <option value="2">上海</option>
        <option value="3">杭州</option>
        <option value="4">成都</option>
    </select>
</form>

‘selected’屬性

如果想要預設選中某一項,則為‘option’標籤新增‘selected’屬性即可。

‘select’分組

分組下拉選單,將‘optgroup’標籤巢狀在‘select’標籤中,併為其指定‘label’屬性設定組標題,再將‘option’標籤巢狀在‘optgroup’標籤中即可,如下所示:

<form>
    <label>中午吃什麼呢:</label>
    <select>
        <optgroup label="西餐">
            <option value="1">牛排</option>
            <option value="2">披薩</option>
        </optgroup>
        <optgroup label="中餐">
            <option value="3">麻婆豆腐</option>
            <option value="4">青椒肉絲</option>
            <option value="5">螞蟻上樹</option>
        </optgroup>
        <optgroup label="快餐">
            <option value="6">阿米巴巴</option>
            <option value="7">大米先生</option>
            <option value="8">順旺基</option>
        </optgroup>
    </select>
</form>

提示:size 屬性可以指定顯示的列表個數,當顯示個數小於實際選單項時以滾動顯示呈現;

‘dataList’標籤

<datalist>’需要配合一個屬性為“list”的‘<input>’標籤使用,通過將list的屬性值設定為‘<datalist>’標籤的“ID”屬性的值來實現關聯,實現出一個既可輸入,又可選擇的下拉選單。當然,IE瀏覽器不支援該元素。

程式碼示例:

<form>
    <input type="text" list="citys" placeholder="請輸入或選擇您喜歡的城市" size="30">
    <datalist id="citys">
        <option value="北京"></option>
        <option value="上海"></option>
        <option value="成都"></option>
        <option value="杭州"></option>
        <option value="三亞"></option>
    </datalist>
</form>

‘button’標籤

‘button’標籤對和其它表單元素一樣,同是屬於“行內塊元素”。

‘button’標籤常用屬性

  • type:指定按鈕型別,其值包括:button(普通按鈕)/submit(提交按鈕)/reset(重置按鈕)

程式碼示例

<form>
    <button type="button">普通按鈕</button>
    <button type="submit">提交按鈕</button>
    <button type="reset">重置按鈕</button>
</form>

效果呈現

這裡寫圖片描述

‘output’ 標籤

  • ‘for’ 屬性關聯‘input’的‘id’屬性值,如果有多個則以空格隔開;

  • 為‘form’標籤新增‘oninput’屬性,根據公式拼接出輸出內容;

  • 如果需要轉換為數字,則使用‘parseInt()’進行轉換;

程式碼示例:

<form oninput="result.value = parseInt(rangeVal.value)">
    <label>0</label>
    <input type="range" min="0" max="10" step="2" id="rangeVal">
    <label>10</label>
    <br>
    <label>您選擇的值是:</label>
    <output name="result" for="rangeVal"></output>
</form>

‘input’標籤

‘input’標籤是一個沒有內容的標籤,按照佈局型別它屬於“行內塊級元素”,它是通過設定屬性及屬性值來決定它的顯示型別的

‘input’標籤常用屬性

  • type:指定input型別

  • autocomplete:設定是否自動完成,其值為:on/off

  • autofocus:規定輸入欄位在頁面載入時是否獲得焦點,不適用於type= ‘hidden’

  • checked:預設選擇,對type值為‘checkbox’及‘radio’有效

  • disabled:禁用

  • size:設定輸入欄位的寬度

  • maxlength:設定輸入欄位的最大長度

  • width:設定寬度,(適用於 type=‘image’)

  • height:設定高度,(適用於 type=‘image’)

  • step:設定輸入欄位合法數字間隔

  • required:表示輸入欄位為必需

  • readonly:表示只讀

  • placeholder:設定輸入框的佔位符

  • pattern:規定輸入欄位的值的模式或格式。例如 pattern=‘[0-9]’表示輸入值必須是 0 與 9 之間的數字。

  • multiple:如果使用該屬性,則允許一個以上的值,適用於‘select’及‘datalist’

  • min:設定輸入欄位的最小值

  • max:這是輸入欄位的最大值

  • list:引用包含輸入欄位的預定義選項的 datalist 。

  • value:設定input的值

‘type’屬性值

  • text:普通輸入框

  • password:密碼輸入框

  • radio:單選寬

  • checkbox:多選框

  • file:檔案

  • button:普通按鈕

  • submit:提交按鈕

  • reset:重置按鈕

  • image:圖片按鈕

  • hidden:隱藏域

  • email:郵箱輸入框

  • url:資源地址

  • search:搜尋框

  • number:數值輸入控制元件

  • tel:電話號碼

  • range:數值選擇範圍控制元件

  • date:日期選擇控制元件

  • month:月份選擇控制元件

  • week:周選擇控制元件

  • time:時間選擇控制元件

  • datetime:日期時間選擇控制元件

  • datetime-local:本地日期時間選擇控制元件

  • color:顏色選擇控制元件

對錶單元素編組

對於一些複雜的表單,有時需要將一些元素組織在一起,為此可以使用‘fieldset’元素。在每一個‘fieldset’元素中新增一個‘legend’元素即可新增表單相關說明,‘legend’元素必須是fieldset元素的第一個子元素,用法類似於‘details’元素與‘summary’元素的關係。

程式碼示例:

<form>
    <fieldset>
        <legend>Enter Your Info</legend>
        <label>賬號:</label><input type="text" name=""><br><br>
        <label>密碼:</label><input type="passowrd" name=""><br><br>
    </fieldset>
    <fieldset>
        <legend>Enter Your Hobby</legend>
        <label>#1:</label><label>賬號:</label><input type="text" name=""><br><br>
        <label>#2:</label><label>賬號:</label><input type="text" name=""><br><br>
        <label>#3:</label><label>賬號:</label><input type="text" name=""><br><br>
    </fieldset>
</form>

顯示效果:

這裡寫圖片描述