html5表單元素包括的基本控件:1、單行文本輸入框;2、密碼輸入框;3、多行文本輸入框(文本域);4、下拉列表;5、單選框;6、復(fù)選框;7、提交按鈕;8、重置按鈕;9、fieldest控件;10、legend控件等。
本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。
表單概述
表單一般用來(lái)收集用戶(hù)信息,讓用戶(hù)填寫(xiě)、選擇,提交相關(guān)信息;在網(wǎng)頁(yè)中, 我們也需要跟用戶(hù)進(jìn)行交互,收集用戶(hù)資料,此時(shí)也需要表單;供用戶(hù)輸入的 HTML 表單通過(guò) <form></form>
標(biāo)簽來(lái)創(chuàng)建
在 HTML 中,一個(gè)完整的表單通常由表單控件(表單元素)、提示信息和表單域三部分構(gòu)成
表單控件
包含了具體的表單功能項(xiàng),例如:?jiǎn)涡形谋据斎肟?、密碼輸入框、單選框、復(fù)選框、提交按鈕、重置按鈕等
提示信息
一個(gè)表單中通常還需要包含一些說(shuō)明性的文字,提示用戶(hù)進(jìn)行填寫(xiě)和操作
表單域
相當(dāng)于一個(gè)容器,用來(lái)容納所有的表單控件和提示信息,可以通過(guò)表單域定義處理表單數(shù)據(jù)所用程序的url地址,以及數(shù)據(jù)提交到服務(wù)器的方法;如果不定義表單域,表單中的數(shù)據(jù)就無(wú)法傳送到后臺(tái)服務(wù)器
完整的表單包含以下元素
form
用于創(chuàng)建 HTML 表單input
控件,單標(biāo)簽,可用于設(shè)置輸入框、單選框、復(fù)選框、上傳文件、提交按鈕等label
為對(duì)應(yīng)的 input 標(biāo)簽定義標(biāo)注(可以認(rèn)為是一個(gè)標(biāo)記或說(shuō)明);如果被標(biāo)注的是輸入框,點(diǎn)擊標(biāo)注內(nèi)容時(shí)光標(biāo)自動(dòng)在輸入框中聚焦textarea
控件,用于創(chuàng)建多行文本輸入框(文本域)select
用于定義下拉列表,需要與 option 標(biāo)簽結(jié)合使用;使用 select 時(shí)需要設(shè)置 name 屬性,用于對(duì)提交到服務(wù)器的表單數(shù)據(jù)進(jìn)行標(biāo)識(shí)option
定義下拉列表中的項(xiàng),默認(rèn)只能選擇一項(xiàng);使用時(shí)需要設(shè)置 value 屬性,提交表單時(shí)會(huì)將對(duì)應(yīng)的選項(xiàng)值提交到服務(wù)器fieldest
對(duì)相關(guān)的表單元素進(jìn)行分組,通常與legend
標(biāo)簽結(jié)合使用legend
為 fieldest 的分組元素定義標(biāo)題button
定義一個(gè)按鈕,在表單中使用該元素則這個(gè)元素具有提交表單的功能;通常在表單中通過(guò) input 標(biāo)簽的 type 屬性來(lái)設(shè)置提交表單的按鈕
各標(biāo)簽常見(jiàn)的屬性
<form></form>
標(biāo)簽
-
name
設(shè)置表單的名稱(chēng) -
action
表單的提交動(dòng)作,表示表單將被提交到哪里;值為 URL 可以是相對(duì)地址或絕對(duì)地址 -
method
表單的提交方法,用何種 HTTP 方法提交表單;一般值為 get 或 post 兩種 -
enctype
設(shè)置表單數(shù)據(jù)編碼的編碼方式;服務(wù)端會(huì)根據(jù)設(shè)置的編碼方式對(duì)提交的數(shù)據(jù)進(jìn)行解碼;其值有三種:
application/x-www-form-urlencoded
在發(fā)送前編碼所有字符(默認(rèn))multipart/form-data
不對(duì)字符編碼;在使用包含文件上傳控件的表單時(shí),必須使用該值text/plain
空格轉(zhuǎn)換為 “+” 加號(hào),但不對(duì)特殊字符編碼
<input />
標(biāo)簽
-
name
定義 input 元素的名稱(chēng);向服務(wù)器提交當(dāng)前標(biāo)簽中的數(shù)據(jù)時(shí)需要設(shè)置該屬性 -
value
設(shè)置 input 元素的值value 屬性對(duì)于不同 input 類(lèi)型,用法也有所不同:
-
對(duì)于 text、password、hidden 類(lèi)型,用于定義輸入框中的初始(默認(rèn))值
-
對(duì)于 checkbox、radio、image 類(lèi)型,用于定義與 input 元素相關(guān)的值,當(dāng)提交表單時(shí)該值會(huì)發(fā)送到表單的 action URL
-
對(duì)于 button、reset、submit 類(lèi)型,用于定義按鈕上顯示的文本內(nèi)容
注: input 類(lèi)型為 checkbox 和 radio 時(shí),必須要設(shè)置 value 屬性
-
-
maxlength
設(shè)置 input 標(biāo)簽中的最大字符個(gè)數(shù),值為數(shù)值類(lèi)型,超過(guò)最大字符個(gè)數(shù)的部分不會(huì)被錄入;一般用于輸入框 -
autofocus
設(shè)置了該屬性在頁(yè)面加載時(shí)會(huì)自動(dòng)聚焦,屬性值可以不寫(xiě);一個(gè)表單只能有一個(gè) input 標(biāo)簽設(shè)置該屬性,多用于輸入框 -
placeholder
用于設(shè)置簡(jiǎn)短的提示文本;多用于輸入框,輸入內(nèi)容時(shí)提示信息自動(dòng)消失 -
checked
設(shè)置某個(gè)選項(xiàng)默認(rèn)被選中;屬性值為 checked,可省略不寫(xiě);該屬性只針對(duì) type=“checkbox” 或者 type=“radio” 有效 -
accept
設(shè)置提交的文件的類(lèi)型,只針對(duì) type=“file” 有效;點(diǎn)擊 “選擇文件” 按鈕后,在彈出的資源管理器中只顯示匹配的文件類(lèi)型屬性值有:
audio/*
所有音頻文件video/*
所有視頻文件image/*
所有圖片文件
-
src
設(shè)置以提交按鈕形式顯示的圖像的位置,值為 url;該屬性與 type=“image” 配合使用 -
alt
圖片按鈕的圖片無(wú)法顯示時(shí)的替代文本;該屬性只能與 type=“image” 配合使用 -
type
用于決定 input 標(biāo)簽的顯示類(lèi)型;對(duì)應(yīng)的屬性值有很多,不同的屬性值對(duì)應(yīng)不同的類(lèi)型,默認(rèn)為 text 類(lèi)型對(duì)應(yīng)的屬性值:
-
text
單行文本輸入框,寬度默認(rèn)為 20 個(gè)英文字符自動(dòng)聚焦:
<input type="" autofocus="autofocus"/>
設(shè)置默認(rèn)值:<input type="text" value="這是默認(rèn)值" />
設(shè)置最大字符個(gè)數(shù):<input type="text" maxlength="6" />
設(shè)置提示信息:<input type="text" name="" placeholder="提示信息">
-
password
密碼輸入框,輸入的內(nèi)容會(huì)以點(diǎn)的形式顯示;同 text 也可以設(shè)置 value、maxlength 等<input type="password" />
-
radio
單選按鈕,多個(gè)選項(xiàng)只能選擇一個(gè);在使用一組單選按鈕時(shí),多個(gè) input 標(biāo)簽要設(shè)置 name 屬性并且 name 的屬性值要相同;使用該類(lèi)型的標(biāo)簽必須要設(shè)置 value 屬性,目的是告訴服務(wù)器被選中項(xiàng)的值<input type="radio" name="sex" value="boy" />男<input type="radio" name="sex" value="girl" />女
設(shè)置默認(rèn)被選中:<input type="radio" name="sex" value="boy" checked="checked" />男<input type="radio" name="sex" value="girl" />女
-
checkbox
用于定義復(fù)選框,在一組選項(xiàng)中可以選擇一個(gè)或多個(gè);同樣需要設(shè)置 name 屬性,name 屬性值也要相同,必須要設(shè)置 value;如果選中了多個(gè)則在提交表單時(shí)將多個(gè)值發(fā)送給服務(wù)器<input type="checkbox" name="like" value="charming" />嫵媚<input type="checkbox" name="like" value="morbidezza" />柔美<input type="checkbox" name="like" value="loveliness" />可愛(ài)<input type="checkbox" name="like" value="fascinating" />妖嬈
設(shè)置多個(gè)默認(rèn)被選中:<input type="checkbox" name="like" value="charming" checked />嫵媚<input type="checkbox" name="like" value="morbidezza" />柔美<input type="checkbox" name="like" value="loveliness" checked />可愛(ài)<input type="checkbox" name="like" value="fascinating" />妖嬈
-
file
用于選擇文件進(jìn)行上傳;要上傳的文件需要手動(dòng)選擇<input type="file" name="myFile" />
-
image
將圖片作為提交按鈕<input type="image" src="./images/btn.png" alt="登錄按鈕" />
-
button
設(shè)置可點(diǎn)擊的按鈕;通過(guò) value 屬性設(shè)置按鈕顯示的文本,可以通過(guò) onclick 屬性創(chuàng)建點(diǎn)擊事件<input type="button" value="按鈕" onclick="msg()" />
submit
用于定義提交按鈕;點(diǎn)擊該按鈕會(huì)對(duì)表單進(jìn)行提交;可以通過(guò) value 屬性設(shè)置按鈕顯示的文本,未設(shè)置 value 時(shí)默認(rèn)顯示為 “提交”<input type="submit" />
react
設(shè)置重置按鈕;點(diǎn)擊該按鈕后會(huì)對(duì)表單進(jìn)行重置(在表單中填寫(xiě)的內(nèi)容會(huì)被清空)<form action="register.php" method="post"> 用戶(hù)名:<input type="text" name="username"> 密碼:<input type="password" name="pwd"> <input type="submit" value="提交"> <input type="reset" value="重置"></form>
hidden
用于定義隱藏字段,隱藏字段對(duì)于用戶(hù)不可見(jiàn)<input type="hidden" name="city" value="BeiJing">
-
<textarea></textarea>
標(biāo)簽
name
文本域的名稱(chēng)cols
設(shè)置文本區(qū)內(nèi)的可見(jiàn)寬度(每行顯示的英文字符個(gè)數(shù),列數(shù));值為數(shù)值類(lèi)型rows
設(shè)置文本區(qū)內(nèi)的可見(jiàn)行數(shù)(行數(shù))required
設(shè)置為必填項(xiàng);值為 requireddisabled
禁用
<textarea cols="10" rows="5"></textarea>
p 標(biāo)簽設(shè)置 contenteditable="true"
也可以實(shí)現(xiàn)文本域效果
<p contenteditable="true"></p>
相關(guān) CSS 樣式:
p { width: 600px; height: 300px; min-height: 200px; _height: 200px; /*消除聚焦時(shí)出現(xiàn)的高亮邊框*/ outline: 0; /*當(dāng)內(nèi)容溢出時(shí),自動(dòng)添加滾動(dòng)條*/ overflow: auto; border: 1px solid gray;}
<label></label>
標(biāo)簽
for
規(guī)定與哪個(gè)表單元素進(jìn)行綁定,其值為 input 標(biāo)簽的 id 屬性對(duì)應(yīng)的值<label for="uname">用戶(hù)名</label><input type="text" id="uname" />
也可以不使用 for 屬性,直接用 label 標(biāo)簽包裹需要標(biāo)注的 input<label>用戶(hù)名<input type="text"></label>
<select></select>
標(biāo)簽
name
定義下拉列表的名稱(chēng)size
設(shè)置顯示下拉列表中可選項(xiàng)的數(shù)目disabled
禁用下拉列表(無(wú)法點(diǎn)擊選擇)
<option></option>
標(biāo)簽
value
用于設(shè)置選項(xiàng)值,被選中的項(xiàng)對(duì)應(yīng)的值在表單提交時(shí)會(huì)傳給服務(wù)器disabled
設(shè)置禁用項(xiàng),設(shè)置該屬性的選項(xiàng)會(huì)被禁用selected
設(shè)置默認(rèn)選中項(xiàng)
默認(rèn)效果:
<select name="city"> <option value="beijing">北京</option> <option value="tianjin">天津</option> <option value="shanghai">上海</option> <option value="chongqing">重慶</option> <option value="guangzhou">廣州</option> <option value="shenzhen">深圳</option> </select>
select 標(biāo)簽設(shè)置了 size 后的效果
<select name="city" size="4">
select 標(biāo)簽設(shè)置了 disabled 后的效果
<select name="city" disabled="disabled">
<fieldest><fieldest>
標(biāo)簽
name
定義 fieldest 的名稱(chēng)disabled
禁用
<legend></legend>
標(biāo)簽
align
標(biāo)題文本的對(duì)齊方式;值為 top、bottom、left、right
<fieldset name="info1"> <legend>基本信息</legend> 姓名:<input type="text" /> 年齡:<input type="text" /></fieldset><fieldset name="info2" disabled> <legend align="right">健康信息</legend> 身高:<input type="text" /> 體重:<input type="text" /></fieldset>
<button></button>
標(biāo)簽
button
可點(diǎn)擊按鈕;IE 默認(rèn)值submit
提交按鈕;除 IE 外其他瀏覽器的默認(rèn)值reset
重置按鈕,清除表單數(shù)據(jù)
推薦教程:《html視頻教程》