表单,用于前台与后台数据交互,用于收集用户信息。在移动互联网出现之前,一度是互联网/软件收集信息的热门途经。
表单可以录入单选文本、多行文本、密码、数字、日期、文件等数据。
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> |