![Web前端学习笔记:HTML5+CSS3+JavaScript](https://wfqqreader-1252317822.image.myqcloud.com/cover/365/31304365/b_31304365.jpg)
4.4 HTML5智能表单
在HTML5中,表单新增了一些属性和元素,这些属性和元素让表单变得更加方便实用。例如,autocomplete属性可以让表单具有自动完成功能,浏览器会根据用户之前输入的值自动完成,这就让表单的填写更加方便。接下来具体学习HTML5新增的属性和元素。
4.4.1 表单分组
<fieldset>可以组合表单中的相关元素,将表单根据不同的内容进行分组。
基本语法如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-144.jpg?sign=1739268189-XHZ4nyi0IfYQGwVYBraZNLa9sQwA05u4-0-1757afddb383069154a078f72e188292)
图4-19所示为一个简单的表单分组。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-145.jpg?sign=1739268189-dY3i0gRxE9IUHc0cXSXFBCayffWpAsEI-0-ec9d0891109d06c31f2aabcb7d7d841c)
图4-19 一个简单的表单分组
其中,<fieldset>表示表单边框,<legend>表示表单标题。如果想要让标题嵌入到边框中,则需将标题标签写到边框标签里面,就像上面代码示例中所写的一样。另外,一个表单可以有多个边框与标题的组合。
代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-146.jpg?sign=1739268189-FH7P9j98qLiJgNAcnGghw5Mr0fUFcPnC-0-5e55a2de04235e5124bdbd01c48cd046)
代码运行效果如图4-20所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-148.jpg?sign=1739268189-ffsah8v7cK89TNDllEDUiQAXSljlFxE7-0-47749aca1d5c30634e949c95704a6bfa)
图4-20 多个表单分组效果
4.4.2 表单新增元素及属性
1.HTML5表单新增元素
表4-1所示为HTML5表单新增元素。
表4-1 HTML5表单新增元素
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-149.jpg?sign=1739268189-0tgaLx5LkHyB49jALJlIiYmZYFlIAox8-0-43245c81ec0b7ef9b84e70d7e30afcd8)
以第一个<datalist>为例,对它的用法进行介绍,其他元素由于并不常用,此处就不再做出详细说明,感兴趣的读者可以查看帮助文档深入学习。
<datalist>具有和autocomplete类似的自动完成功能,但它还有一个功能是autocomplete属性所没有的,那就是在使用<datalist>时,它可以根据用户输入的内容,在预先设置好的列表中筛选出与用户输入相关的信息作为备选。
基本语法如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-150.jpg?sign=1739268189-sM6sJlo1RgP1uGo5nIUPjq4hu8DAVhQK-0-4e1437a9c324760ecd51a4e0164e6664)
代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-152.jpg?sign=1739268189-TOovFCgsbSEyVi2SZyPZMIg8DsriE4td-0-b09c7d6e952041becab9be6f45b3cae7)
执行代码,输入框激活时右侧会出现一个下拉箭头。单击下拉箭头会出现候选内容如图4-21所示,当输入的内容与选项列表中的候选内容相关时,就会在下拉列表中显示相关内容,如图4-22所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-153.jpg?sign=1739268189-Kq8sk7TlFvaAHGTt4qfbOuSZ4qS7PhiA-0-8cfb7624cd46514d975004021a24ca99)
图4-21 下拉列表中的候选内容
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-154.jpg?sign=1739268189-0ttCP6PQKtlA58xwoQVAexiWjzlIa2kW-0-6a0bba74ea2b20a04844d9bd21c35cff)
图4-22 下拉列表中的相关内容
2.HTML5表单及其控件部分新增属性
(1)表单新增属性
表单新增属性见表4-2。
表4-2 表单新增属性
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-155.jpg?sign=1739268189-RjopzBTDdVMfZzYaXD9YwtAlIT84rL62-0-2cc6703edb1a85ed0cd20c48243a881c)
autocomplete属性值有on和off,novalidate属性值有true和false。
(2)<input>标签新增属性
<input>标签新增属性见表4-3。
表4-3 <input>标签新增属性
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-156.jpg?sign=1739268189-yvaF8N3n5ivHMgvRhCyLFUyCQEs36Kqc-0-cb7c875ed136890587853538338c5d63)
表4-3中的前三个属性比较简单,本书不再展开具体介绍;第四个属性pattern是用于表单提交时输入框需要验证的正则表达式,关于正则表达式将在本书的第18章中进行详细讲解,此处不做具体介绍。
表4-3中的第五个属性form overrides是一个合集,实际上它包括有多个属性,具体如下:
1)formaction:重写表单的action属性。
2)formenctype:重写表单的enctype属性。
3)formmethod:重写表单的method属性。
4)formnovalidate:重写表单的novalidate属性。
5)formtarget:重写表单的target属性。
上述表单重写属性与type="submit"配合使用,会在提交时修改表单的属性值。
对于表4-3中的最后一个属性form,其具体用法是为特定的form表单添加id,再为希望与表单一起提交的表单元素添加form属性,从而实现<input>无须放在<form>标签之中,也可通过表单进行提交,使用这种方式可以在设计页面时不再局限于表单的固定位置,让页面更加美观。form属性的代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-157.jpg?sign=1739268189-tWsmad0gkfagZWvt6mFnKLu3H9t74Hip-0-dd776082e84e227921ba7e3594d77bf6)
(3)<input>标签新增输入类型
<input>标签新增输入类型见表4-4。这些新增输入类型在不同浏览器中显示效果会有所不同,另外在某些不支持新增输入类型的浏览器中可能功能无法使用。
表4-4 <input>标签新增输入类型
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-159.jpg?sign=1739268189-UtZBrGIpdq5iKQwLdUTNXdn07gTj61QB-0-b14e774b1429ab46639d6a8c672341f9)
表4-4中输入类型的代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-160.jpg?sign=1739268189-v6dBywn41AO01LFznyFteW191L4Bgh6V-0-74ecf139ec92951b91a7e24c4914f913)
代码运行效果如图4-23所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-161.jpg?sign=1739268189-G36gUC9WlniyHYk2scsXTiE5toMqzPGS-0-9fee05ab155218b6ffa9144c25b8a0f4)
图4-23 <input>标签新增输入类型效果
下面对这几种新增的输入类型进行详细介绍。
1)拾色器功能:单击色块后会弹出“颜色”对话框(图4-24),让用户来选择颜色。
2)日期选择功能:在鼠标移到输入框时会在右侧出现下拉箭头,单击箭头则会出现如图4-25所示的日期选择框。
3)电子邮件功能:这个功能不用做过多解释,当输入框的type属性设置为email时,输入的内容必须符合电子邮件的基本规范。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-162.jpg?sign=1739268189-xnD6SGkOc9wwtcpUK14Rt7dozvGS4qgx-0-1aad3fe0582e50efe28996512359b346)
图4-24 “颜色”对话框
4)数字输入框功能:当鼠标移到输入框上时,会出现上下调整的箭头按钮(图4-26),此时可以通过单击按钮调整数值,也可以通过键盘直接输入。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-163.jpg?sign=1739268189-jTmMyYQghMTk3yWqKexeCEmlsfZdPf3k-0-1c2087a1b98cdc0bfe57e86cea095475)
图4-25 日期选择
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-164.jpg?sign=1739268189-tY3lm4vPplbeV7kINPCCpp4it2uogU4J-0-c1850f28dd4de5c35d2e7df9cc863dd5)
图4-26 数字输入框
5)滑块输入功能:滑块输入将显示为一根滑动条,根据用户滑动的位置确定选中的数值。默认情况下,最左端的值为0,最右端的值为100。可以通过min属性和max属性分别确定滑动条的最小值与最大值。例如,网页中的音量调节功能,就可以使用滑块输入功能,如图4-27所示。
6)搜索框功能:在搜索框被激活时,与普通文本输入框不同的是右侧会有一个叉号(图4-28),单击“×”按钮就会删除用户在输入框中输入的所有内容。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-165.jpg?sign=1739268189-wXkFoamuybWeICJbS2y1ygzImuadDS7L-0-d6afeb42d5f922dd4af255a896055460)
图4-27 网页音量调节
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-166.jpg?sign=1739268189-BFSr6OKamwOunp3MVB6GMqOzp2Jranlm-0-92be569edf3d5faa3c7450afb51a7cd2)
图4-28 搜索框