HTML5对表单的一些有意思的改进

时间:2021-08-12 20:24:06

HTML5对表单进行了许多的改进,在这篇文章中,我选择了其中个人认为很有趣的三个变化:自动聚焦对button元素的改进把表单元素与非父元素的form表单挂钩进行简单的介绍。


 

1. 自动聚焦

 

自动聚焦的主要应用点是:我们可以为某个表单元素,如input设置一个autofocus属性,这样在这个页面刚刚加载出来的时候,这个input元素就会自动处于被选中的状态,直接可以进行输入,省去了用户手动选择的过程。这个特性使用js也可以做到,但是使用这个新特性无疑更加简单高效。

 

注意,autofocus属性只能用在一个input元素上,要是有几个元素都设置了这个属性,那么浏览器将会自动聚焦于最后一个设置了该属性的元素。

2. 对button元素的改进
HTML5为button元素添加了很多新的属性,原来的button元素在表单中的角色仅仅有三种,分别是“type=submit”、“type=reset”以及“type=button”。现如今,button元素相当于一个form表单的“大管家”。它可以:
    - 使用form属性与指定的表单相关联
    - 使用formaction属性覆盖form表单的action属性
    - 使用formenctype属性覆盖form表单的enctype属性
    - 使用formmethod属性覆盖form表单的method属性
    - 使用formtarget覆盖form表单的target属性
    - 使用formnovalidate属性覆盖form表单的novalidate,表明是否应该执行客户端数据有效性检查
所以现在我们可以在一个button元素中设置form表单的所有属性,如果你不嫌太过于拥挤的话。input元素也有如上所示的这些属性。

3. 把表单元素与非父元素的form表单挂钩
可能这个小标题表述的有些拗口,其实意思很简单,在HTML5之前,如果我们要提交一个人员信息的表单,我们需要把所有人员信息的输入框,选择框等等表单元素都放在一个form标签中,也就是说他们有公共的父元素。但是在HTML5的世界里,不在需要这样做了,我们只需要在开头声明一个form标签,给他设置一个id属性,然后我们就可以将那些表单元素分布在各个地方,唯一需要做的就是 把这些表单元素的form属性值指定为所属的form表单的id值。代码如下所示:
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style>
 7 
 8         </style>
 9     </head>
10     <body>
11         <form id="myForm">
12             <p>
13                 <label for="uname">姓名:</label>
14                 <input name="uname" type="text" autofocus="autofocus"/>
15             </p>
16         </form>
17         <p>
18             <label for="uage">年龄:</label>
19             <input name="uage" type="text" form="myForm"/>
20         </p>
21         <button form="myForm" type="submit">Submit</button>
22         <button form="myForm" type="reset">Reset</button>
23     </body>
24 </html>