<form> 元素定義 HTML 表單
表單元素指的是不同類型的 input 元素、復選框、單選按鈕、提交按鈕等等。
HTML 表單用于搜集不同類型的用戶輸入。
<form>
.
form elements
.
</form>
<input> 元素有很多形態(tài),根據(jù)不同的 type 屬性。
這是本章中使用的類型:(另外還有password,checkbox,button等)
類型 | 描述 |
---|---|
text | 定義常規(guī)文本輸入。 |
radio | 定義單選按鈕輸入(選擇多個選擇之一) |
submit | 定義提交按鈕(提交表單) |
HTML5 增加了多個新的輸入類型:
注釋:老式 web 瀏覽器不支持的輸入類型,會被視為輸入類型 text。
這里列出了一些常用的輸入限制(其中一些是 HTML5 中新增的):
屬性 | 描述 |
---|---|
disabled | 規(guī)定輸入字段應該被禁用。 |
max | 規(guī)定輸入字段的最大值。 |
maxlength | 規(guī)定輸入字段的最大字符數(shù)。 |
min | 規(guī)定輸入字段的最小值。 |
pattern | 規(guī)定通過其檢查輸入值的正則表達式。 |
readonly | 規(guī)定輸入字段為只讀(無法修改)。 |
required | 規(guī)定輸入字段是必需的(必需填寫)。 |
size | 規(guī)定輸入字段的寬度(以字符計)。 |
step | 規(guī)定輸入字段的合法數(shù)字間隔。 |
value | 規(guī)定輸入字段的默認值。 |
<input type="radio"> 定義單選按鈕。
單選按鈕允許用戶在有限數(shù)量的選項中選擇其中之一:
<form> <input type="radio" name="sex" value="male" checked>Male <br> <input type="radio" name="sex" value="female">Female </form>
<input type="submit"> 定義用于向表單處理程序(form-handler)提交表單的按鈕。
表單處理程序通常是包含用來處理輸入數(shù)據(jù)的腳本的服務器頁面。
表單處理程序在表單的 action 屬性中指定:
<form action="action_page.php"> First name:<br> <input type="text" name="firstname" value="Mickey"> <br> Last name:<br> <input type="text" name="lastname" value="Mouse"> <br><br> <input type="submit" value="Submit"> </form>
action 屬性定義在提交表單時執(zhí)行的動作。
向服務器提交表單的通常做法是使用提交按鈕。
通常,表單會被提交到 web 服務器上的網(wǎng)頁。
在上面的例子中,指定了某個服務器腳本來處理被提交表單:
<form action="action_page.php">
如果省略 action 屬性,則 action 會被設置為當前頁面。
method 屬性規(guī)定在提交表單時所用的 HTTP 方法(GET 或 POST)
<form action="action_page.php" method="GET"> 或: <form action="action_page.php" method="POST">
您能夠使用 GET(默認方法):
如果表單提交是被動的(比如搜索引擎查詢),并且沒有敏感信息。
當您使用 GET 時,表單數(shù)據(jù)在頁面地址欄中是可見的:
action_page.php?firstname=Mickey&lastname=Mouse
注釋:GET 最適合少量數(shù)據(jù)的提交。瀏覽器會設定容量限制。
您應該使用 POST:
如果表單正在更新數(shù)據(jù),或者包含敏感信息(例如密碼)。
POST 的安全性更加,因為在頁面地址欄中被提交的數(shù)據(jù)是不可見的。
如果要正確地被提交,每個輸入字段必須設置一個 name 屬性。
本例只會提交 "Last name" 輸入字段,因為“First name“沒有設置 name 屬性:
<form action="action_page.php"> First name:<br> <input type="text" value="Mickey"> <br> Last name:<br> <input type="text" name="lastname" value="Mouse"> <br><br> <input type="submit" value="Submit"> </form>
<fieldset> 元素組合表單中的相關數(shù)據(jù)
<legend> 元素為 <fieldset> 元素定義標題。
<form action="action_page.php"> <fieldset> <legend>Personal information:</legend> First name:<br> <input type="text" name="firstname" value="Mickey"> <br> Last name:<br> <input type="text" name="lastname" value="Mouse"> <br><br> <input type="submit" value="Submit"></fieldset> </form>
HTML <form> 元素,已設置所有可能的屬性,是這樣的:
<form action="action_page.php" method="GET" target="_blank" accept-charset="UTF-8" ectype="application/x-www-form-urlencoded" autocomplete="off" novalidate> . form elements . </form>
屬性 | 描述 |
---|---|
accept-charset | 規(guī)定在被提交表單中使用的字符集(默認:頁面字符集)。 |
action | 規(guī)定向何處提交表單的地址(URL)(提交頁面)。 |
autocomplete | 規(guī)定瀏覽器應該自動完成表單(默認:開啟)。 |
enctype | 規(guī)定被提交數(shù)據(jù)的編碼(默認:url-encoded)。 |
method | 規(guī)定在提交表單時所用的 HTTP 方法(默認:GET)。 |
name | 規(guī)定識別表單的名稱(對于 DOM 使用:document.forms.name)。 |
novalidate | 規(guī)定瀏覽器不驗證表單。 |
target | 規(guī)定 action 屬性中地址的目標(默認:_self)。 |
【 微信掃一掃 】