Web 表單 2.0 就是 HTML4 表單特性的一個(gè)擴(kuò)展。HTML5 中的表單元素和屬性相比 HTML4 提供了更大程度的語(yǔ)義標(biāo)記,移除了大量 HTML4 中需要的繁瑣腳本和樣式。
HTML4 輸入框元素使用 type 屬性指定數(shù)據(jù)類型。HTML4 提供了下列類型:
| 類型 | 描述 |
|---|---|
| text | 自由形式的文本字段,名義上沒(méi)有換行符。 |
| password | 用于敏感信息的自由形式的文本字段,名義上沒(méi)有換行符。 |
| checkbox | 預(yù)定義列表中的一組零個(gè)或多個(gè)值。 |
| radio | 一個(gè)枚舉值。 |
| submit | 一個(gè)自由形式的啟動(dòng)表單的按鈕。 |
| file | 帶有 MIME 類型的任意文件以及可選的文件名。 |
| image | 一個(gè)坐標(biāo),相對(duì)于特定圖片的尺寸,額外的語(yǔ)義是它必須是最后選中的值,同時(shí)啟動(dòng)表單提交。 |
| hidden | 默認(rèn)不顯示給用戶的任意字符串。 |
| select | 枚舉值,類似 radio 類型。 |
| textarea | 自由形式的文本字段,名義上沒(méi)有換行的限制。 |
| button | 自由形式的按鈕,可以啟動(dòng)按鈕相關(guān)的任何事件。 |
下面是一個(gè)使用標(biāo)注標(biāo)簽,單選按鈕以及提交按鈕的簡(jiǎn)單示例:
...
<form action="http://example.com/cgiscript.pl" method="post">
<p>
<label for="firstname">first name: </label>
<input type="text" id="firstname"><br />
<label for="lastname">last name: </label>
<input type="text" id="lastname"><br />
<label for="email">email: </label>
<input type="text" id="email"><br>
<input type="radio" name="sex" value="male"> Male<br>
<input type="radio" name="sex" value="female"> Female<br>
<input type="submit" value="send"> <input type="reset">
</p>
</form>
...
除了上面提到的屬性,HTML5 給輸入框元素的 type 屬性引入了幾個(gè)新值。如下表所列。
注意: 請(qǐng)使用最新版的 Opera 瀏覽器運(yùn)行下面所有例子。
| 類型 | 描述 |
|---|---|
| datetime | 按照 ISO 8601 編碼,時(shí)區(qū)設(shè)置為 UTC 的日期和時(shí)間(包括年,月,日,時(shí),分,秒,分秒)。 |
| datetime-local | 按照 ISO 8601 編碼的日期和時(shí)間(包括年,月,日,時(shí),分,秒,分秒),不帶時(shí)區(qū)信息。 |
| date | 按照 ISO 8601 編碼的日期(包括年,月,日)。 |
| month | 由 ISO 8601 編碼的年和月組成的日期。 |
| week | 由 ISO 8601 編碼的年和星期數(shù)組成的日期。 |
| time | 按照 ISO 8601 編碼時(shí)間(包括時(shí),分,秒,和分秒)。 |
| number | 只接受數(shù)值。step 屬性可以指定精度,默認(rèn)為1。 |
| range | range 類型適用于應(yīng)該包含某個(gè)范圍內(nèi)數(shù)值的輸入字段。 |
| 只接受郵箱值。這個(gè)類型適用于應(yīng)該包含一個(gè)郵箱地址的輸入字段。如果嘗試提交一個(gè)簡(jiǎn)單的文本,它會(huì)強(qiáng)制要求輸入 email@example.com 格式的郵箱地址。 | |
| url | 只接受 URL 值。這個(gè)類型適用于應(yīng)該包含一個(gè) URL 地址的輸入字段。如果嘗試提交一個(gè)簡(jiǎn)單的文本,它會(huì)強(qiáng)制要求輸入 http://www.example.com 或者 http://example.com 格式的 URL 地址。 |
HTML5 還引入了一個(gè)新元素 <output>,用來(lái)表示不同類型的輸出結(jié)果,比如輸出由腳本所寫。
還可以用 for 屬性指定輸出元素和文檔中影響計(jì)算的其他元素之間的關(guān)系(比如,作為輸入源或者參數(shù))。for 屬性的值是一個(gè)由空格分隔的其他元素的 IDs 列表。
便于學(xué)習(xí)這一概念 - 請(qǐng)進(jìn)行在線練習(xí)。
HTML5 引入了一個(gè)叫做 palceholder 的新屬性。這個(gè)屬性在 <input> 和 <textarea> 元素上為用戶提供了在這個(gè)字段可以輸入什么的提示。占位符字符不能包含回車符或者換行符。
下面是 placeholder 屬性的簡(jiǎn)單語(yǔ)法:
<input type="text" name="search" placeholder="search the web"/>
這個(gè)屬性只有最新版的 Mozilla,Safari 以及 Chrome 瀏覽器支持。
便于學(xué)習(xí)這一概念 - 請(qǐng)進(jìn)行在線練習(xí)。
現(xiàn)在,我們不需要使用 JavaScript 處理諸如空文本框永遠(yuǎn)不能被提交的這類客戶端驗(yàn)證了,因?yàn)?HTML5 引入了一個(gè)叫做 required 的新屬性,可以按照如下方式使用,它會(huì)保證輸入框有值:
<input type="text" name="search" required/>
這個(gè)屬性只有最新版的 Mozilla,Safari 以及 Chrome 瀏覽器支持。
便于學(xué)習(xí)這一概念 - 請(qǐng)進(jìn)行在線練習(xí)。