![Web开发技术:HTML、CSS、JavaScript](https://wfqqreader-1252317822.image.myqcloud.com/cover/353/31304353/b_31304353.jpg)
4.4 HTML5智能表单
在HTML5中,表单新增了一些属性和元素,这些属性和元素让表单变得更加方便实用。例如,autocomplete属性可以让表单具有自动完成功能,浏览器会根据用户之前输入的值自动完成,这就让表单的填写更加方便。接下来具体学习HTML5新增的属性和元素。
4.4.1 表单分组
<fieldset>可以组合表单中的相关元素,将表单根据不同的内容进行分组。
基本语法如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0053.jpg?sign=1739476439-pDt8pQqyeY5xZy8nKa2O9I50JN7M1pHN-0-2582a745a892c3c86d6cc1e8a159d140)
图4-19所示为一个简单的表单分组。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0054.jpg?sign=1739476439-JmHKPZerVCLG8aVMRAoFTLCXxttE5BKm-0-7708d396a919f538c3c3ae8a064e7dd1)
图4-19 一个简单的表单分组
其中,<fieldset>表示表单边框,<legend>表示表单标题。如果想要让标题嵌入到边框中,则需将标题标签写到边框标签里面,就像上面代码示例中所写的一样。另外,一个表单可以有多个边框与标题的组合。
代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0055.jpg?sign=1739476439-bcrZbO3fsIePr7HV0yrISXAuUaegiz0o-0-425ea4117b5cd3a926d72916b8cd40dc)
代码运行效果如图4-20所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0057.jpg?sign=1739476439-SgGBD43SGWmqxWFkxxfcq49tHHn07Fkm-0-36e9aaff1bfa440c99d9c730db3e3465)
图4-20 多个表单分组效果
4.4.2 表单新增元素及属性
1. HTML5表单新增元素
表4-1所示为HTML5表单新增元素。
表4-1 HTML5表单新增元素
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0058.jpg?sign=1739476439-MOLYaBW24vQWB0vAQLnOoPpsbh5rXVbp-0-a7e4e332af486bca36e380b52c598f1a)
以第一个<datalist>为例,对它的用法进行介绍,其他元素由于并不常用,此处就不再做出详细说明,感兴趣的读者可以查看帮助文档深入学习。
<datalist>具有和autocomplete类似的自动完成功能,但它还有一个功能是autocomplete属性所没有的,那就是在使用<datalist>时,它可以根据用户输入的内容,在预先设置好的列表中筛选出与用户输入相关的信息作为备选。
基本语法如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0060.jpg?sign=1739476439-85wUYnFO6VdY974HybIeQ3Jw1xh4mGQC-0-bdb3b4e7de3a02c04147e82cd07d3ee3)
代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0062.jpg?sign=1739476439-hjspqJ03f42pXhl6eC668MWhOXU1fOwi-0-e486e6792ea463eae37022b2e2bc4c17)
执行代码,输入框激活时右侧会出现一个下拉箭头。单击下拉箭头会出现候选内容如图4-21所示,当输入的内容与选项列表中的候选内容相关时,就会在下拉列表中显示相关内容,如图4-22所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0063.jpg?sign=1739476439-2JComvkSwPUwUY3CEEiT4OR40JzVtksn-0-98f3b441659b31aa4b16232d3319f43c)
图4-21 下拉列表中的候选内容
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0064.jpg?sign=1739476439-BQhXLXJx3hyzosw82cg4MQfx7Mn2PxMl-0-99612e63ce960ed2f41270927232d8fa)
图4-22 下拉列表中的相关内容
2. HTML5表单及其控件部分新增属性
(1)表单新增属性
表单新增属性见表4-2。
表4-2 表单新增属性
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0065.jpg?sign=1739476439-bNb2FO8AEkPCOWWeknnmPtzMwuX6ZR0Q-0-2855320f97410f47e9da71ab958de86d)
autocomplete属性值有on和off,novalidate属性值有true和false。
(2)<input>标签新增属性
<input>标签新增属性见表4-3。
表4-3 <input>标签新增属性
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0066.jpg?sign=1739476439-FMBRXOknVcRjwTwS7nAOC5l15U2BbtFJ-0-ff0d4617bc82b124cfc931876f6fdd27)
表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/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0067.jpg?sign=1739476439-vCwoTM6bfqVwyzhuJWTetBwYzCOK0aC8-0-f37190ac2ebd70be9587201224704076)
(3)<input>标签新增输入类型
<input>标签新增输入类型见表4-4。这些新增输入类型在不同浏览器中显示效果会有所不同,另外在某些不支持新增输入类型的浏览器中可能功能无法使用。
表4-4 <input>标签新增输入类型
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0069.jpg?sign=1739476439-cqd5RCSDfKeOlHmkutFNXZTeOXlw9Mmx-0-a45599d933ee3c9128f7ec4e4d1e1229)
表4-4中输入类型的代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0071.jpg?sign=1739476439-hSdUR0XHLf58YksMuI1sGbGzPKeiiRK2-0-0fa477137d3ef033994dc61ec72934bd)
代码运行效果如图4-23所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0072.jpg?sign=1739476439-UjsWPzraO2TDcKSK2vBDfnKVCPnmEc1K-0-b1f47216ece6a840b564b122902495b5)
图4-23 <input>标签新增输入类型效果
下面对这几种新增的输入类型进行详细介绍。
1)拾色器功能:单击色块后会弹出“颜色”对话框(图4-24),让用户来选择颜色。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0073.jpg?sign=1739476439-L9VqGigYzEAnrNpsgEHjBeFhVBeqC2Uj-0-85c59bf97fbe08a5abd35d570f75a0ce)
图4-24 “颜色”对话框
2)日期选择功能:在鼠标移到输入框时会在右侧出现下拉箭头,单击箭头则会出现如图4-25所示的日期选择框。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0074.jpg?sign=1739476439-M8T3MxGKExoqvbrm6cpgS14xrlDXAL23-0-d833be72173dd4212dcde7983dc641d3)
图4-25 日期选择
3)电子邮件功能:这个功能不用做过多解释,当输入框的type属性设置为email时,输入的内容必须符合电子邮件的基本规范。
4)数字输入框功能:当鼠标移到输入框上时,会出现上下调整的箭头按钮(图4-26),此时可以通过单击按钮调整数值,也可以通过键盘直接输入。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0075.jpg?sign=1739476439-Qsz5LeAOvW5yVsSpNhxL0JgeqDHujt9I-0-c786c13c20efbb8f2e711daf6ff08ff6)
图4-26 数字输入框
5)滑块输入功能:滑块输入将显示为一根滑动条,根据用户滑动的位置确定选中的数值。默认情况下,最左端的值为0,最右端的值为100。可以通过min属性和max属性分别确定滑动条的最小值与最大值。例如,网页中的音量调节功能,就可以使用滑块输入功能,如图4-27所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0076.jpg?sign=1739476439-YThiWfNkR4ucjTpL3mOmkhRE0JIobVex-0-7757d58a2ad1dd0cedd0b40a7422b64f)
图4-27 网页音量调节
6)搜索框功能:在搜索框被激活时,与普通文本输入框不同的是右侧会有一个叉号(图4-28),单击“×”按钮就会删除用户在输入框中输入的所有内容。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0077.jpg?sign=1739476439-84i8a8ra64TPQzD5H6BiD5VfX7u0SvJP-0-d8ac12c162dbe086e9d52d1a995efe20)
图4-28 搜索框