表單簡介 Form表單主要用於用戶與Web應用程式進行數據的交互,它允許用戶將數據發給web應用程式,網頁也可以攔截數據的發送以便自己使用。form通常由一到多個表單元素組成,這些表單元素是單行/多行文本框,下拉菜單,按鈕,覆選框,單選按鈕,時間表單元素時 一般要配合label標簽,用於描述其目的。 ...
表單簡介
Form表單主要用於用戶與Web應用程式進行數據的交互,它允許用戶將數據發給web應用程式,網頁也可以攔截數據的發送以便自己使用。form通常由一到多個表單元素組成,這些表單元素是單行/多行文本框,下拉菜單,按鈕,覆選框,單選按鈕,時間表單元素時 一般要配合label標簽,用於描述其目的。其可用屬性如下。
action 用於處理表單信息的應用程式的地址。
method 瀏覽器用來提交表單的HTTP方法。
get 對應於Http協議的GET方法,表單數據被附加在uri上,使用"?"分隔
post 對應於Http協議的POST方法,表單數據包含在HTTP協議的請求報文的體部。
name 設定表單的名稱
target 表示瀏覽器接收到form的提交信息後在哪裡顯示回應。
_self,_blank,_parent,_top這些值和超鏈接的相同
表單數據的內容類型
通過enctype屬性設定表單數據的內容類型
1. application/x-www-form-urlencoded
在發送前編碼所有字元(預設)使用到的編碼方式:
1)控制項的名稱和值都被轉義,空白字元使用【+】替換,保留的字元一般都是用來實現特定的目的,例如(: / ? ; @ = & 等)。非數字和字母的字元使用%HH(這裡 HH表示兩個十六進位數字,代表該字元的ASCII碼)進行轉換,
2)控制項的"名稱/值"對按照它們在文檔數據流中出現的順序列出來。"名稱""值"使 用"="分割,兩個"名稱/值"之間使用&隔開。
2. multipart/form-data
不對字元編碼。在使用包含【文件上傳控制項】的表單時,必須使用該值。數據分成多個部分,每個部分代表一個結構良好的控制項,作為文檔數據流的一部分,每一 個部分都按照它們在文檔數據流中出現的順序依次發送到伺服器端,並且,每一部分的邊界不會出現在數據中。每一部分有一個content-desposition標題頭,它的值的格式是: Content-Disposition:form-data;name="myControl"
3. text/plain
空格轉換為 "+" 加號,但不對特殊字元編碼。
表單組件
input組件用於接受來自用戶的數據,其可用屬性如下
1、type 用於設定組件類型
text 單行文本框
password 密碼框,輸入的內容將會被遮擋。
checkbox 覆選框,必須使用value屬性來描述該組件所提交的值,使用checked屬性預設選 中。
radio 單選按鈕,必須使用value屬性來描述該組件所提交的值,使用checked屬性預設 選中。一個單選按鈕組中所有組件都應該具有相同的name值,這樣,每次只能選中按鈕組中的 某一個組件
submit 提交按鈕
reset 重置按鈕
file文件按鈕,該組件用於選中文件系統中的某個文件
hidden 隱藏域,該組件不顯示在頁面中,但是其值會被提交。
image 圖像按鈕,必須使用src來載入圖片,使用alt來聲明替換文本。
button 普通按鈕
2、name 用於設定組件類型
3、value 用於設定初始化,可選。
4、checked 單選框,覆選框預設選中屬性
5、disabled 表示禁用組件,禁用組件的值也不能被提交
6、size 當前控制項的初始寬度,這個寬度以像素為單位。除非控制項類型是text, password,這時寬度是整數值,表示字元的數目,預設為20
7、maxlength 指定可以輸入的字元的最大值。適用於控制項類型為text,password。
fieldset組件用於在一個web表單中對多個控制項和標簽進行分組
1、disabled 禁用filedset元素,該屬性會影響的fieldset的子元素
2、name fieldset元素的名稱
fieldset的標題由標簽提供
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action=""> <fieldset> <legend>Title</legend> <input type="radio" id="radio"> <label for="radio">click me</label> </fieldset> </form> </body> </html>
input/button按鈕組件用於接受來自用戶的數據,其可用屬性如下
按鈕控制項
1、input的type 指定控制項類型
button,submit,reset
2、input的name 按鈕名稱。
3、input的value 按鈕所關聯的值,會與name的值一同被提交
label組件用於表示某一表單組件的標題 其可用屬性如下
1、for 與為設定標題的表單組件的ID值一致,上面的代碼實例有
select組件用於表示下拉列表或列表,其可用屬性如下
1、multiple 指定控制項類型 布爾類型的值,表示是否允許多選,如果select元素不包含屬性size和屬性 multiple時,表單類型顯示為菜單(組合框),如果使用了屬性size和屬性multiple中 的任意一個,則表單類型顯示為列表框。
2、size 顯示的行數 當要表示一個可以滾動的列表時候,size表示同時展示的行數。預設值為0。表 示非列表顯示
3、disabled 表示禁用組件,禁用組件的值也不能被提交
4、name 用於指定該組件的名字,會與其option子元素的value值組成鍵值對隨其他表單數據一齊被提交
option組件用於表示選項,常包含<select>、<optgroup>中,其可用的屬性如下
1、disabled 表示禁用組件,禁用組件的值也不能被提交
2、value 定義控制項的初始值。提交表單時,初始值會被提交給伺服器。
3、selected 表示該選項預設被選中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action=""> <select name="address" id=""> <option value="北京" disabled>北京</option> <option value="上海" selected>上海</option> <option value="廣州">廣州</option> </select> </form> </body> </html>
optgroup組件用於表示option的選項組,常包含在<select>中,其可用的屬性如下
1、disabled 表示禁用組件,禁用組件的值也不能被提交
2、label 表示選項組的名稱
3、selected 表示該選項預設被選中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action=""> <select name="address" id=""> <optgroup label="廣東省"> <option value="廣州">廣州</option> <option value="深圳">深圳</option> </optgroup> <optgroup label="江蘇省"> <option value="蘇州">蘇州</option> <option value="鹽城">鹽城</option> </optgroup> </select> </form> </body> </html>
textarea組件用於表示多行文本框,沒有value屬性,其值被包含在標簽內 其可用屬性如下
1、rows 定義文本框的行數
2、cols 定義文本框的列數
3、warp 表示是否自動換行
• off 不自動換行
• hard自動硬回車換行,換行元素一同被傳送到伺服器中
• soft自動軟回車換行,換行元素不會傳到伺服器中
4、disabled 表示禁用組件,禁用組件的值也不能被提交
5、readonly 表示該組件只讀,其值依然會被提交
6、name 用於指定該組件的名字,會隨著其值一同被提交到後臺
新增表單組件
progress組件用於表示任務的完成情況,常用於進度條 其可用的屬性如下
1、max 定義進度元素所要求的任務的工作量,預設值為1
2、value 定義已經完成的工作量,如果max值為1,該值必須是介於0~1之間的小 數。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action=""> <progress value="70" max="100"></progress> </form> </body> </html>
output 組件用於表示用戶動作產生的結果 其可用的屬性如下
1、name 定義元素的名稱
2、for 其他元素的id列表,表明這些元素為計算提供了輸入值(或其他影響)。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="" oninput="result.value=parseInt(a.value)+parseInt(b.value)"> <input type="range" name="b" value="50">+ <input type="number" name="a" value="10">= <output name="result"></output> </form> </body> </html>
meter元素表示規定範圍內的數量值。呈現的效果有一個類似於進度條
例如:磁碟使用量,某個候選者的投票人數占 總投票人數的比例等
1、value :在元素中特地表示出來的實際值,該值在min與max之間,如果未指定 ,該值預設為1
2、min :指定規定範圍時允許使用的最小值,預設為0
3、max :指定規定範圍時允許使用的最大值,預設為1
4、low :規定範圍的下限值必須小於或等於high屬性的值
5、high :規定範圍的上限值(表示較高危險的意思)
6、optimum :最佳值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <p>He got a <meter low="69" high="80" max="100" value="70">B</meter>on this exam</p> </body> </html>
datalist組件表示其他控制項可用的值,其值通過<option>作為datalist的子元素存在
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <label for=""> choose a browser from this list:</label> <input type="text" name="myBrowser" list="browsers"> <datalist id="browsers"> <option value="Chrome"> <option value="Firefox"> <option value="Internet Explorer"> <option value="Opera"> <option value="Safari"> <option value="Microsoft Edge"> </datalist> </body> </html>
新增表單屬性
1、type
在H5中,對input的type進行了擴展,可以有更多的取值
1、date 日期控制項(年,月,日,不包含時間)
2、datetime-local 日期時間控制項
3、time 時間控制項
4、month 日期插件(年,月)
5、week 日期插件(年,周)
註意:以上只能被chrome,opera支持
6、number 數字控制項(只能輸入數字)
7、range 範圍控制項(通過控制條可以調整取值)
8、search 搜索控制項,
9、tel 電話控制項
10、url 地址控制項
11、color 顏色控制項
12、email email控制項