![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=1738881989-V1KKcMdkjYZp2mtnrvFDN8ERlMTHeRBK-0-06e00ef43680e297dab14d3d41d1d499)
图4-19所示为一个简单的表单分组。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-145.jpg?sign=1738881989-0WFWXJ2PkKDJVPF21mxa6scGuo2oDZ6e-0-1137aa1fad670f9a475c3b92e773a31f)
图4-19 一个简单的表单分组
其中,<fieldset>表示表单边框,<legend>表示表单标题。如果想要让标题嵌入到边框中,则需将标题标签写到边框标签里面,就像上面代码示例中所写的一样。另外,一个表单可以有多个边框与标题的组合。
代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-146.jpg?sign=1738881989-OKFnQUXO7vxxMo1ZdaWiVT8sodzhQpEE-0-948cbfdb7f018830e06b4b975e064ba1)
代码运行效果如图4-20所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-148.jpg?sign=1738881989-9MACDq7pI8Na2ra8rH6oDuhAR5KJhfEZ-0-0c2e5f3380f56b0391bf26e49394ecad)
图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=1738881989-Rzy4cT3lYJLQ6rKreGS6UAyqy1fvW4AK-0-a5bbff06b1f41cb4f14ab2b79b32ce55)
以第一个<datalist>为例,对它的用法进行介绍,其他元素由于并不常用,此处就不再做出详细说明,感兴趣的读者可以查看帮助文档深入学习。
<datalist>具有和autocomplete类似的自动完成功能,但它还有一个功能是autocomplete属性所没有的,那就是在使用<datalist>时,它可以根据用户输入的内容,在预先设置好的列表中筛选出与用户输入相关的信息作为备选。
基本语法如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-150.jpg?sign=1738881989-Dxxpm2xmHigxnOBsLIFaBbNx1GIVwfeV-0-6c18aaf26ede7251a0e31f4a9b4d239d)
代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-152.jpg?sign=1738881989-D4Zqxc1oYW52XyhlRd8k0SweAQdN9n7g-0-c2d4c022ea92fa183841cdf0483a8d4a)
执行代码,输入框激活时右侧会出现一个下拉箭头。单击下拉箭头会出现候选内容如图4-21所示,当输入的内容与选项列表中的候选内容相关时,就会在下拉列表中显示相关内容,如图4-22所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-153.jpg?sign=1738881989-sB52k8anRdST2j2ryTMEr4zdKEgQipmW-0-d3ac899ec49fe7392e11b5398ad8dacc)
图4-21 下拉列表中的候选内容
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-154.jpg?sign=1738881989-ylIuwSanDKdPJ1vVyQOeVVsHakrXKdtu-0-28f9b42b167e6055139deddd03f5c14e)
图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=1738881989-RMH34DNCH6tjCTYRNxp2tf4s3uLQAQkG-0-82b19470c494b755716c49b8b72798ee)
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=1738881989-mA0S1lckZwMdGz9WvNhEbP1LehCe01sB-0-129f979058d17cbb4b00a70e06b9a072)
表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=1738881989-u6fLOExHHgyQsw05r89InzA3BPHkKrtr-0-98c16902c59b8f3e87f9bfc9c128494e)
(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=1738881989-JS5qf4lhcpQisjs4K7ppNZ9lUvnseRYq-0-77f3a751f2e60787240e17c485ad4edf)
表4-4中输入类型的代码示例如下:
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-160.jpg?sign=1738881989-DlSI0CHo3gzu9CudRSa1ArZQACOrAnMl-0-cb9ce9cd7a56b1eba31c6cfb5d7f94f5)
代码运行效果如图4-23所示。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-161.jpg?sign=1738881989-ggC6QwZw0iPcSK3ZBNbXe24HJXdz7xBC-0-2dbb5b088a6b44c8b27b998e89746834)
图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=1738881989-GKKoCPKS99aWrXm3ZMl4wVlEG4xpc0Va-0-cc1b976586fe23aa3a782fc3fd8db937)
图4-24 “颜色”对话框
4)数字输入框功能:当鼠标移到输入框上时,会出现上下调整的箭头按钮(图4-26),此时可以通过单击按钮调整数值,也可以通过键盘直接输入。
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-163.jpg?sign=1738881989-j286a8uQYlbyNjPUetDZQkzMYb4WU5Jc-0-9b4d66db09aaca244c39467d152c5586)
图4-25 日期选择
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-164.jpg?sign=1738881989-hoNbDPvc9uGQ5HzVPklxviaOnWAKdP06-0-fe0a04ba2782d946cd28d4321c789673)
图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=1738881989-qwTmdA6gTyoB18kXfTnc0tkdatVpHJmW-0-61be88ca9e1212a89e84aac7d5a5a886)
图4-27 网页音量调节
![](https://epubservercos.yuewen.com/B78585/16948916704924306/epubprivate/OEBPS/Images/978-7-111-60090-9-Part01-166.jpg?sign=1738881989-ycZzq97CDWxBIsEOf4bH939hnmO2xoMj-0-e3c00ed43c73396dc10d6ae4f0736178)
图4-28 搜索框