- Web开发技术:HTML、CSS、JavaScript
- 赵振
- 1631字
- 2021-04-02 20:21:09
4.4 HTML5智能表单
在HTML5中,表单新增了一些属性和元素,这些属性和元素让表单变得更加方便实用。例如,autocomplete属性可以让表单具有自动完成功能,浏览器会根据用户之前输入的值自动完成,这就让表单的填写更加方便。接下来具体学习HTML5新增的属性和元素。
4.4.1 表单分组
<fieldset>可以组合表单中的相关元素,将表单根据不同的内容进行分组。
基本语法如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0053.jpg?sign=1739185309-YuZlo54MXNWT5MwDZQtn24OqQIXio9TQ-0-ce36211e7d681086d5ba0d43a0c36c3e)
图4-19所示为一个简单的表单分组。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0054.jpg?sign=1739185309-QjZkhfhOrucw6bLb65EqsaYOTfH5j7Eb-0-02d380e3b2c8751f36eb86620868bb70)
图4-19 一个简单的表单分组
其中,<fieldset>表示表单边框,<legend>表示表单标题。如果想要让标题嵌入到边框中,则需将标题标签写到边框标签里面,就像上面代码示例中所写的一样。另外,一个表单可以有多个边框与标题的组合。
代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0055.jpg?sign=1739185309-8hwl6lH1ItVHumA1E8TgeCPd78ASih0r-0-cafc14f3f328f7eaab02b40467307b19)
代码运行效果如图4-20所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0057.jpg?sign=1739185309-vh1XhIFDJ3uomhrZrNDrxg6TjNdCKb73-0-89ed63573bb0ec2b4093dc7ec929b266)
图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=1739185309-M2EJ2jtvXGuKl9dbaQjDdXELKny3twbK-0-81f5b371b0b96d5ab2f274dd777e4a08)
以第一个<datalist>为例,对它的用法进行介绍,其他元素由于并不常用,此处就不再做出详细说明,感兴趣的读者可以查看帮助文档深入学习。
<datalist>具有和autocomplete类似的自动完成功能,但它还有一个功能是autocomplete属性所没有的,那就是在使用<datalist>时,它可以根据用户输入的内容,在预先设置好的列表中筛选出与用户输入相关的信息作为备选。
基本语法如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0060.jpg?sign=1739185309-oXYJmNXymuMIFfFuE347jWtwETgRpqki-0-ce00061a769cceaf48dba8f813d61520)
代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0062.jpg?sign=1739185309-bwimtNc6heRjWQyETsNljs5KjWKiCGLG-0-eea66a9b1eaef15cb5edbaca0f19ab54)
执行代码,输入框激活时右侧会出现一个下拉箭头。单击下拉箭头会出现候选内容如图4-21所示,当输入的内容与选项列表中的候选内容相关时,就会在下拉列表中显示相关内容,如图4-22所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0063.jpg?sign=1739185309-bbWm0awt16ApOjcCH3VAKuAt5gvsZoxq-0-a43c02b13b15fbeafe3dc42c485b9a63)
图4-21 下拉列表中的候选内容
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0064.jpg?sign=1739185309-SZTOu4btSj4RhZI4WvdUfoZdOb8H46gl-0-98a8828cd3ad82117ae0725f9240d750)
图4-22 下拉列表中的相关内容
2. HTML5表单及其控件部分新增属性
(1)表单新增属性
表单新增属性见表4-2。
表4-2 表单新增属性
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0065.jpg?sign=1739185309-L8fCc7Wn9yYR3RIUCX2wvfTU3gor4nNJ-0-4a23b36beff2e7034ffb5a0a21b95858)
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=1739185309-yab0gyx5sdjsOxF5enEJiegkn6bYmTXW-0-d318fa645e9bd19a08cfed81268b39da)
表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=1739185309-xBGvpKMFaoClR5zwRlMTxc3QnKoRbAj3-0-497b569a6e635a68a1bb802693e23948)
(3)<input>标签新增输入类型
<input>标签新增输入类型见表4-4。这些新增输入类型在不同浏览器中显示效果会有所不同,另外在某些不支持新增输入类型的浏览器中可能功能无法使用。
表4-4 <input>标签新增输入类型
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0069.jpg?sign=1739185309-q96kErGDnHGzUeB5i8XTZW9yheSLec1h-0-e6212e2a9051237a01f3790bbfa99e9a)
表4-4中输入类型的代码示例如下:
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0071.jpg?sign=1739185309-iCk13tUrondreVX9jd8n9mm7NNeLD2N3-0-074828c5e944e6727f61627dc755f172)
代码运行效果如图4-23所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0072.jpg?sign=1739185309-QKenA0gw8F2Y7wKiNLvpsavJhD1F69bm-0-0a71a3dd9c2ed46565b2b6fd17315ecc)
图4-23 <input>标签新增输入类型效果
下面对这几种新增的输入类型进行详细介绍。
1)拾色器功能:单击色块后会弹出“颜色”对话框(图4-24),让用户来选择颜色。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0073.jpg?sign=1739185309-Uhm5e1g7BJG9IjNOC45redsHhhwVd3Oo-0-bcbf781f15da94315773c8e26e83ba48)
图4-24 “颜色”对话框
2)日期选择功能:在鼠标移到输入框时会在右侧出现下拉箭头,单击箭头则会出现如图4-25所示的日期选择框。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0074.jpg?sign=1739185309-rvtNyvUi9mHeTb9aSp16Jvr5o06hWBBn-0-64b7c13f5935bc98bfb6b02337fcc3dd)
图4-25 日期选择
3)电子邮件功能:这个功能不用做过多解释,当输入框的type属性设置为email时,输入的内容必须符合电子邮件的基本规范。
4)数字输入框功能:当鼠标移到输入框上时,会出现上下调整的箭头按钮(图4-26),此时可以通过单击按钮调整数值,也可以通过键盘直接输入。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0075.jpg?sign=1739185309-2dov1S4mKbeyEYZNSBlvVBC4DaLdUqeK-0-93536e611a02978b114087bb765d3723)
图4-26 数字输入框
5)滑块输入功能:滑块输入将显示为一根滑动条,根据用户滑动的位置确定选中的数值。默认情况下,最左端的值为0,最右端的值为100。可以通过min属性和max属性分别确定滑动条的最小值与最大值。例如,网页中的音量调节功能,就可以使用滑块输入功能,如图4-27所示。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0076.jpg?sign=1739185309-wvXcLLjXKFDpH0kWiH9E7zmRhh4rXHNc-0-6ae326997c45debfadb8e107b7ec4dda)
图4-27 网页音量调节
6)搜索框功能:在搜索框被激活时,与普通文本输入框不同的是右侧会有一个叉号(图4-28),单击“×”按钮就会删除用户在输入框中输入的所有内容。
![](https://epubservercos.yuewen.com/9BA8D0/16948916504923706/epubprivate/OEBPS/Images/a-0077.jpg?sign=1739185309-BVc2eNxbgiPQNGnNjjxtlnipDW24IQkO-0-9fbfaa5bfbb62c3a2003ce5ccc884955)
图4-28 搜索框