表单,用于前台与后台数据交互,用于收集用户信息。在移动互联网出现之前,一度是互联网/软件收集信息的热门途经。
表单可以录入单选文本、多行文本、密码、数字、日期、文件等数据。
form
在html中,用<form></form>元素表示表单。
表单有两个常用的属性:
action 表示表单收集的信息给谁处理。通常表单收集的信息将给后台程序处理,目前流程的后台处理语言有PHP、Java、ASP、Python等。
method 表示表单以何种方式向后台传送数据,它有两个属性值:post和get。post在传送数据给后台前会将数据进行编码,数据到达服务器后再进行反编码。get的在将数据传送给后台时不会编码,所有数据会在URL(浏览器地址栏)上显示。通常使用post方式传送数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> < html > < head > < title >表单</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >这是表单示例</ p > </ form > </ body > </ html > |
单行文本
<input>元素可以创建多种不同的表单控件,type属性决定它要创建哪种控件。
单行文本使用<input>元素创建,type属性值为text。
<input>元素还有些属性:
name 这属性选择服务器从哪获取数据。
size 属性指出单行文本显示的字符数量。通常是指最宽字符,如果使用小宽字符1则不止显示一个,使用字符m则刚刚好。
maxlength 属性可以限制输入字符数量。
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> < html > < head > < title >单行文本</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >用户名:< input type = "text" name = "username" size = "3" maxlength = "30" ></ p > </ form > </ body > </ html > |
密码框
在html中,密码框使用元素<input></input> 配合属性type,其值为password来完成。
其中属性name 、size、maxlength同单行文本中的作用意义一样。
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html> < html > < head > < title >密码框</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >用户名:< input type = "text" name = "username" size = "20" maxlength = "30" ></ p > < p >密码:< input type = "password" name = "password" size = "20" maxlength = "30" ></ p > </ form > </ body > </ html > |
多行文本框
在html中使用<textarea></textarea>元素来创建多行文本框。
<textarea>元素有属性cols和rows,分别表示文本框的宽度和行数。可以不写,在实际应用中,通常使用css样式来控制宽度和长度。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html> < html > < head > < title >多行文本框</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < label for = "content" >正文</ label > < textarea name = "username" id = "content" ></ textarea > </ form > </ body > </ html > |
单选按钮
单选按钮让用户从多个选项中只选择一项。在html中使用元素<input></input> 配合属性type,其值为radio来完成。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html> < html > < head > < title >单选按钮</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >你最喜欢的编程语言是什么?</ p > < input type = "radio" name = "language" value = "css" checked = "checked" >CSS < input type = "radio" name = "language" value = "html" >HTML < input type = "radio" name = "language" value = "javascript" >JavaScript </ form > </ body > </ html > |
注意单选按钮的属性。
name属性告诉服务器从哪里获取数据,在单选按钮中,多个选项共用一个name属性值。
value属性,具体单选项的值。
checked属性,表示默认被选中的选项,其值也是checked。
复选框
复选框让用户在回答问题时有多个选项可选择。在html中使用元素<input></input> 配合属性type,其值为checkbox来完成。
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html> < html > < head > < title >复选框</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >你喜欢吃的食物有哪些?</ p > < input type = "checkbox" name = "food" value = "dumpling" checked = "checked" >饺子 < input type = "checkbox" name = "food" value = "fish meal" >鱼粉 < input type = "checkbox" name = "food" value = "youtiao" >油条 </ form > </ body > </ html > |
name属性告诉服务器从哪里获取数据,在单选按钮中,多个选项共用一个name属性值。
value属性,具体复选项的值。
checked属性,表示默认被选中的选项,其值也是checked。
下拉列表
下拉列表,也就是选择框,让用户选择其中一项。在html中使用元素<select></select>和<option ></option>元素来完成。
元素<select></select>表示下拉列表,有属性name告诉服务器从哪里获取数据。
<option ></option>元素表示下拉列表的选项,有属性value,即选中后的值,将和name一起发送到服务器。还有一个属性selected,其值也是selected,表示默认选中的下拉选项。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html> < html > < head > < title >下拉列表</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < P >下拉列表,也就是选择框,让用户选择其中一项。</ P > < select name = "interest" > < option value = "sing" >唱歌</ option > < option value = "broil" selected = "selected" >烧烤</ option > < option value = "read" >看书</ option > </ select > </ body > </ html > |
多选框
多选框是在下拉列表的基础上稍加变化,元素<select></select>添加一个属性multiple,其值也是multiple;再添加一个属性size,其值 是数字,用于显示多少个选项。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<!DOCTYPE html> < html > < head > < title >多选框</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < select name = "interest" multiple = "multiple" size = "3" > < option value = "sing" >唱歌</ option > < option value = "broil" selected = "selected" >烧烤</ option > < option value = "read" >看书</ option > < option value = "game" >玩游戏</ option > < option value = "play basketball" >打篮球</ option > </ select > </ body > </ html > |
文件上传域
文件上传域通常用于上传文件,在html中使用元素<input></input> 配合属性type,其值为file来完成。
上传文件的表单,其method的值必须是post,否则不能上传文件。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html> < html > < head > < title >文件上传域</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >上传附件</ p > < input type = "file" name = "file" > </ form > </ body > </ html > |
提交按钮
提交按钮用于表单发送到服务器。在html中使用元素<input></input> 配合属性type,其值为submit来完成。还有一个属性value,用于表示按钮上显示的文本信息。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html> < html > < head > < title >文件上传域</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < p >上传附件</ p > < input type = "file" name = "file" > < input type = "submit" value = "提交" > </ form > </ body > </ html > |
隐藏字段
隐藏字段表单这个字段不会在页面上显示,用户不需要知道,可是相关业务操作又会用这个字段。
在html中使用元素<input></input> 配合属性type,其值为hidden来完成。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> < html > < head > < title >隐藏字段</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < input type = "hidden" name = "id" value = "3" > </ form > </ body > </ html > |
按钮
按钮是HTML元素之一,在表单里用得少,在网页中用得多。
在html中使用元素<button></button> 表示。按钮上显示的文字写在开始标签<button>和结束标签</button>之间。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> < html > < head > < title >按钮</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < button name = "btn" value = "abc" >这是按钮</ button > </ form > </ body > </ html > |
标签
标签用于说明。表单中的标签用于说明输入组件<input>。
在html中使用元素<label></label> 表示。有属性for,用于与输入组件<input>关联,for的值与输入组件<input>的id值相同。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html> < html > < head > < title >标签</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < label for = "username" >用户名:</ label > < input name = "username" type = "text" id = "username" > </ form > </ body > </ html > |
组合元素
组合元素可以将表单中的组件进行分组,这对于复杂的表单来说非常有用。
在html中使用元素<fieldset></fieldset> 表示组合元素,并将表单中逻辑关联性强的组件放到<fieldset></fieldset>元素内。
<legend></legend>元素用于说明分组的概述。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!DOCTYPE html> < html > < head > < title >组合元素</ title > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > </ head > < body > < fieldset > < legend >账号</ legend > < label for = "username" >用户名:</ label > < input name = "username" type = "text" id = "username" >< br >< br > < label for = "password" >密码:</ label > < input name = "username" type = "text" id = "password" > </ fieldset > </ form > </ body > </ html > |