![网页设计与制作教程:Web前端开发(第6版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/31/41865031/b_41865031.jpg)
2.4 表单
用户在注册、登录、搜索等时,网页中用于输入内容的文本框、单选框、复选框、下拉列表框、按钮等,可以用表单来实现。当访问者在表单中输入信息并单击提交按钮后,这些信息将被发送到服务器,服务器端脚本或应用程序将对这些信息进行处理。
2.4.1 表单元素form
网页上具有可输入表项及项目选择等控制所组成的栏目称为表单。﹤form﹥标签用于创建供用户输入的HTML表单。form元素是块级元素,其前后会产生折行。form元素的基本格式为:
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_34_01.jpg?sign=1739663165-bubWM1iTmbW1jed6CPWfnvM3jGY1GWfW-0-9cb86cc907dbba7ae8edfc8841f9a56c)
﹤form﹥标签主要用于表单结果的处理和传送,常用属性如下。
1)action属性:规定当提交表单时向何处发送表单数据,是网址或E-mail地址。这个属性必须有。
2)method属性:规定用于发送表单数据时的发送类型,其属性值可以是get或post,具体是哪一个,取决于后台程序。这个属性必须有。
3)enctype属性:规定在发送表单数据之前如何对其进行编码。enctype属性有以下3个值。
● application/x-www-form-urlencoded:默认的编码方式,在发送前编码所有字符。
● multipart/form-data:被编码为一条二进制消息,网页上的每个控件对应消息中的一个部分,包括文件域指定的文件。在使用包含文件上传控件的表单时,必须使用这个值。
● text/plain:空格转换为加号(+),但不对特殊字符编码。
4)name属性:表单的名字,在一个网页中用于识别表单的唯一标识,与id属性值相同。
5)target属性:规定使用哪种方式打开目标URL,它的属性值可以是_blank、_self、_parent或_top中的一个,使用方法与a元素的target属性相同。
2.4.2 输入元素input
input元素用来定义用户输入数据的输入字段。根据不同的type属性值,输入字段可以是文本字段、密码字段、复选框、单选按钮、按钮、隐藏域、图像、文件等。input元素的基本格式为:
﹤input type="表项类型"name="元素名"size="x"maxlength="y"/﹥
input元素的常用属性如下。
1)type属性:指定要加入表单项目的类型,type属性值见表2-1。
表2-1 input元素的type属性值
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_34_02.jpg?sign=1739663165-Obj2aSts7WAxzQxkg0GStYCjIU6p5FvG-0-9a806e75d48e7e0cdcd3f4c28fc3b151)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_34_03.jpg?sign=1739663165-xhlXjxt6HUl4aWWGW6pzNLJWGAzVK5sC-0-45c03b1a5d01854656c17b9e40946881)
11 输入元素input
(续)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_35_01.jpg?sign=1739663165-lvC2WzEXkWLIsR4gWT0P6xp61JsdfgmV-0-a87c274691751a98458a71710f94924d)
2)name属性:定义input元素的名称。
3)size属性:定义该控件的宽度。
4)maxlength属性:规定输入字段中字符的最大长度。
5)checked属性:当页面加载时是否预先选择该input元素(适用于type="checkbox"或type="radio")。
6)readonly属性:规定输入字段为只读,字段的值无法修改。
7)autofocus属性:规定输入字段在页面加载时是否获得焦点(不适用于type="hidden")。
8)disabled属性:当页面加载时是否禁用该input元素(不适用于type="hidden")。
9)value属性:规定input元素的默认值。
【例2-13】 制作不同类型的表单按钮,本例文件2-13.html在浏览器中的显示效果如图2-13所示。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_35_02.jpg?sign=1739663165-gkuO4gcioTt2cHgtW85wOVzA5kBxUgik-0-d1f62b3f44cd4393e2e43f2e49ba87fe)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_35_03.jpg?sign=1739663165-LHTFDgqTIhg9F1QMmmoYzf1UJJTrjP5h-0-5b54a069933f93c24c8b9306d29d86c5)
图2-13 不同类型的按钮
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_36_01.jpg?sign=1739663165-kUG4vRPX7WkPrVqd9utWVa8lXSJHzrwT-0-0a962ce742bd245cae55ab3b190c6695)
2.4.3 标签元素label
﹤label﹥标签用于为表单中的其他控件元素添加说明文字。当用户在浏览器中单击label元素生成的标签时,会自动将焦点转到与该标签相关的表单控件上。label元素的格式为:
﹤label for="id"﹥说明文字﹤/label﹥
﹤label﹥标签最重要的属性是for属性。for属性把label元素绑定到另外一个元素,把for属性的值设置为相关元素的id属性的值。使﹤label﹥标签与表单控件关联的方法有以下两种。
● 将﹤label﹥标签的for属性值,指定为关联表单控件的id。
● 把说明与表单控件一起放入﹤label﹥…﹤/label﹥标签内部。
【例2-14】 label元素的示例。本例文件2-14.html在浏览器中的显示效果如图2-14所示,单击“密码”标签,焦点将定位到其关联的文本框中。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_36_02.jpg?sign=1739663165-qBzhrFRp0VDnuZdhtci9YU1uNCc1FYUZ-0-3ebac391842627a3971f22dd3352f7c9)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_36_03.jpg?sign=1739663165-PC5CkglxNb8bpvoMmVxFK0v73bY7Hidq-0-54c51d906e32754a5a01aa176dee8201)
图2-14 label元素的显示效果
2.4.4 选择栏元素select
select元素可用来创建菜单或者下拉列表框,实现单选或多选菜单。﹤select﹥标签必须配合﹤option﹥标签和﹤optgroup﹥标签使用,﹤option﹥标签定义列表中的可用选项;﹤optgroup﹥标签表示一个选项组,该元素中只能有option子元素。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_36_04.jpg?sign=1739663165-e9I2QMKUmB15GQXGwhKl4Cz3XrYUB17l-0-4187d924701fc77eb0e891abc4ae2d49)
select元素的属性如下。
1)size属性:指定下拉列表中同时显示选项的数目,默认值为1。
2)name属性:下拉列表的名称。
3)multiple属性:指定可选择多个选项,属性值只能是multiple。无此属性时则为单选。
2.option元素
option元素定义下拉列表中的一个选项。浏览器将﹤option﹥标签中的内容作为﹤select﹥标签的菜单或是滚动列表中的一个元素显示。option元素必须位于select元素内部。option元素的格式为:
﹤option value="选项值"selected="selected"﹥…﹤/option﹥
option元素的属性如下。
1)value属性:定义该列表项对应的送往服务器的参数。若省略,则初值为option中的内容。
2)selected属性:指定该选项的初始状态为选中,其属性值只能是selected。
3.optgroup元素
如果列表选项很多,可以使用﹤optgroup﹥标签对相关选项分组。optgroup元素的格式为:
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_37_01.jpg?sign=1739663165-chvXI1lx9D4ag2awOS7Dauadf7IIpDsz-0-0ee0beee0bef3c8d33f49598b3c973fc)
ptgroup元素的属性如下。
1)label属性:为选项组指定说明文字,本属性必须设置。
2)disabled属性:设置该选项组是否可用,属性值是disabled。
【例2-15】制作问卷调查的下拉列表。本例文件2-15.html在浏览器中的显示效果如图2-15所示。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_37_02.jpg?sign=1739663165-uNjPaO1cs72QgQNcyESnPUE3Ek6HmjAg-0-993a1dd213569603c210e997e2cd22ed)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_37_03.jpg?sign=1739663165-AOitNtrL2GNq4ZQ7lqUqZ3CLvjo9SMhj-0-77cf98c0bf562cd12aa704efba14b2cb)
图2-15 页面的显示效果
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_38_01.jpg?sign=1739663165-cDSsSKJMNZgMa6NGOR6m1JA7ovlEidus-0-c3ae4b8392d3a22c32d848249d4a2231)
2.4.5 按钮元素button
button元素定义一个按钮。﹤button﹥与﹤/button﹥标签之间的所有内容都是按钮的内容,其中包括任何可接收的内容,包括文本、图像或多媒体内容。这是该元素与input元素创建的按钮之间的不同之处。button元素与﹤input type="button"﹥相比,前者提供了更强大的功能和更丰富的内容。button元素的格式为:
﹤button type="按钮的类型"﹥文本、图像元素﹤/button﹥
button元素的属性如下。
1)type属性:指定按钮的类型,只能是button、reset或submit,与input元素的3种类型的按钮相对应。
2)autofocus属性:指定当页面加载时按钮自动地获得焦点。
3)disabled属性:指定禁用该按钮。
4)name属性:指定按钮的名称。
5)value属性:指定按钮的初始值,可由脚本进行修改。
【例2-16】按钮元素示例。本例文件2-16.html在浏览器中的显示效果如图2-16所示。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_38_02.jpg?sign=1739663165-Wx3vxBPoDyX9WJeo0lNw6rlWpT3HvedY-0-57209cd40f9b21ad7353c648244b4bdc)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_38_03.jpg?sign=1739663165-rqnP8RUEdzvQwHG5EU3KRg9w5rawgB7b-0-870f770ed69941d53a8aefcce8c12514)
图2-16 按钮元素
2.4.6 多行文本元素textarea
textarea元素定义多行文本输入控件。该控件可以用来输入多个段落的文字,文本区中可容纳无限数量的文本。textarea元素的格式为:
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_38_04.jpg?sign=1739663165-F3SBgvVQl0DX0QPbzTXze10lhBXQUbTf-0-1716fd22d92cfb3ee3553c242f58067c)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_39_01.jpg?sign=1739663165-ypsnRDknr7j7yokWmw8Y9OHN8OPsSsfs-0-15fe58f5ec12e8de3894beae5b3f596a)
textarea元素的属性如下。
1)cols属性:指定textarea文本区内的宽度。此属性必须设置。
2)rows属性:指定textarea文本区内的可见行数,即高度。此属性必须设置。
3)maxlength属性:指定文本区域的最大字符数。行数和列数是指不拖动滚动条就可看到的部分。
4)name元素:指定本标签的ID名称。
5)placeholder元素:指定描述文本区的简短提示。
6)readonly元素:指定文本区为只读。这个属性的属性值只能是readonly。
7)required元素:指定文本区是必填的。这个属性的属性值只能是required。
通过cols和rows属性来规定textarea的尺寸,不过更好的办法是使用CSS的height和width属性。
注释:在文本区内的文本行间,用“%OD%OA”(回车/换行)进行分隔。
【例2-17】多行文本元素示例。本例文件2-17.html在浏览器中的显示效果如图2-17所示。
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_39_02.jpg?sign=1739663165-IIFh1aomOLQBTrtufyxDIQGvluVOYDUP-0-fb159b94ea00f90a4a616179eb22dcff)
![](https://epubservercos.yuewen.com/DF99B2/21889220801186806/epubprivate/OEBPS/Images/978-7-111-66646-2_39_03.jpg?sign=1739663165-jZDutfp6nBWCEfWfqbO0pljnOmXirscV-0-3892b8323cd33b087aca9ee40042cf7c)
图2-17 多行文本元素