![HTML5+CSS3从入门到精通(微课精编版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/697/24172697/b_24172697.jpg)
3.3 新的input属性
HTML5为input元素新增了多个属性,用于限制输入行为或格式。
3.3.1 autocomplete——自动完成
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P82_16452.jpg?sign=1739312740-SHqcICYalmAj2vKe9K12Q8S7TZFGXc7k-0-d72504a4180f7ed589aa0d00078eaad4)
视频讲解
autocomplete属性可以帮助用户在输入框中实现自动完成输入。取值包括on和off,用法如下所示。
<input type="email" name="email" autocomplete="off" />
提示:autocomplete属性适用input类型包括:text、search、url、telephone、email、password、datepickers、range和color。
autocomplete属性也适用于form元素,默认状态下表单的autocomplete属性处于打开状态,其包含的输入域会自动继承autocomplete状态,也可以为某个输入域单独设置autocomplete状态。
注意:在某些浏览器中需要先启用浏览器本身的自动完成功能,才能使autocomplete属性起作用。
【示例】设置autocomplete为on时,可以使用HTML5新增的datalist元素和list属性提供一个数据列表供用户进行选择。下面示例演示如何应用autocomplete属性、datalist元素和list属性实现自动完成。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P82_77885.jpg?sign=1739312740-vM4womprztNOwKz7p8iC0ExU7BkmJB4m-0-ee56af52b5c9e32589789bea37ed2dac)
在浏览器中预览,当用户将焦点定位到文本框中时,会自动出现一个城市列表供用户选择,如图3.36所示。而当用户单击页面的其他位置时,这个列表就会消失。
当用户输入时,该列表会随用户的输入自动更新,例如,当输入字母q时,会自动更新列表,只列出以q开头的城市名称,如图3.37所示。随着用户不断地输入新的字母,下面的列表还会随之变化。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16516.jpg?sign=1739312740-VcgRwv2abv375QXmNVMOyPrUk68B3lm7-0-4efcdea88c74a9a297b0f4c467d7cfe2)
图3.36 自动完成数据列表
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16517.jpg?sign=1739312740-KAtJyBm8BpGhcEfEzecCzPQ48FFuQtii-0-f7239705ff876243ee4f5de2b96948c3)
图3.37 数据列表随用户输入而更新
提示:多数浏览器都带有辅助用户完成输入的自动完成功能,只要开启了该功能,浏览器会自动记录用户所输入的信息,当再次输入相同的内容时,浏览器就会自动完成内容的输入。从安全性和隐私的角度考虑,这个功能存在较大的隐患,如果不希望浏览器自动记录这些信息,则可以为form或form中的input元素设置autocomplete属性,关闭该功能。
3.3.2 autofocus——自动获取焦点
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16616.jpg?sign=1739312740-C1JF7GobHz3hGO9eED3sQjZjjBWBwUPO-0-4955ac1950bb8a263e5f3dd150b1b489)
视频讲解
autofocus属性可以实现在页面加载时,让表单控件自动获得焦点。用法如下所示。
<input type="text" name="fname" autofocus="autofocus" />
autocomplete属性适用所有<input>标签的类型,如文本框、复选框、单选按钮、普通按钮等。
注意:在同一页面中只能指定一个autofocus对象,当页面中的表单控件比较多时,建议为最需要聚焦的那个控件设置autofocus属性值,如页面中搜索文本框,或者许可协议的“同意”按钮等。
【示例1】下面示例演示如何应用autofocus属性。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_77889.jpg?sign=1739312740-cNaBTTFbwuOZKBbZHKAVzbdCRxe0ZVZ7-0-33f49be58d005fee1dd1a74fb13aa280)
以上代码在Chrome浏览器中的运行结果如图3.38所示。页面载入后,“同意”按钮自动获得焦点,因为通常希望用户直接单击该按钮。如果将“拒绝”按钮的autofocus属性值设置为on,则页面载入后焦点就会在“拒绝”按钮上,如图3.39所示,但从页面功用的角度来说这样并不合适。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16656.jpg?sign=1739312740-K375zu1uGHyx0wisX7cDDmR5Ur8L9sXW-0-46698866708ccc167c057fd25b51b8ca)
图3.38 “同意”按钮自动获得焦点
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16657.jpg?sign=1739312740-IYdJP2C1GDDJ22Ht6jJzhmoVU9fPyPgN-0-cde3c604f9aaa6940580849e68916791)
图3.39 “拒绝”按钮自动获得焦点
【示例2】如果浏览器不支持autofocus属性,可以使用JavaScript实现相同的功能。在下面脚本中,先检测浏览器是否支持autofocus属性,如果不支持则获取指定的表单域,为其调用focus()方法,强迫其获取焦点。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_77892.jpg?sign=1739312740-u3hf6CYUp5iDbaEX7Jb7vtZ04MUliyON-0-e47e24dced1cd2bd32fb9a16c80a6652)
3.3.3 form——归属表单
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16739.jpg?sign=1739312740-8TsEwy9Ni4cii6H5Ve9glhCFGG29p7zC-0-17e5c69b92344495a11ee0d776d2e04a)
视频讲解
form属性可以设置表单控件归属的表单。适用于所有<input>标签的类型。
提示:在HTML4中,用户必须把相关的控件放在表单内部,即<form>和</form>之间。在提交表单时,在<form>和</form>之外的控件将被忽略。
【示例】form属性必须引用所属表单的id,如果一个form属性要引用两个或两个以上的表单,则需要使用空格将表单的id值分隔开。下面是一个form属性应用。
<form action="" method="get" id="form1"> 请输入姓名:<input type="text" name="name1" autofocus/> <input type="submit" value="提交"/> </form> 请输入住址:<input type="text" name="address1" form="form1" />
以上代码在Chrome浏览器中的运行结果如图3.40所示。如果填写姓名和住址并单击“提交”按钮,则name1和address1分别会被赋值为所填写的值。例如,如果在姓名处填写“zhangsan”,住址处填写“北京”,则单击“提交”按钮后,服务器端会接收到“name1=zhangsan”和“address1=北京”。用户也可以在提交后观察浏览器的地址栏,可以看到有“name1=zhangsan&address1=北京”字样,如图3.41所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16760.jpg?sign=1739312740-7Ot1ngpwNWYNOnwxf0gPxDaf4th8h3Ez-0-ccd7bf9ad3be0766562ccdfce507a00f)
图3.40 form属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16761.jpg?sign=1739312740-FbNDPsvpEyG0WmDs4WkSlU1gNKxba2c4-0-a80eb28860981b8c4e2bb6934989b411)
图3.41 地址中要提交的数据
3.3.4 表单重写
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16840.jpg?sign=1739312740-Gq24KdqBDUVyiMmBX5QnDV4fBjknok9Z-0-30ff6887f5d5208a35bda723f1f79b08)
视频讲解
HTML5新增5个表单重写属性,用于重写<form>标签属性设置,简单说明如下:
formaction:重写<form>标签的action属性。
formenctype:重写<form>标签的enctype属性。
formmethod:重写<form>标签的method属性。
formnovalidate:重写<form>标签的novalidate属性。
formtarget:重写<form>标签的target属性。
注意:表单重写属性仅适用于submit和image类型的input元素。
【示例】下面示例设计通过formaction属性,实现将表单提交到不同的服务器页面。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_77895.jpg?sign=1739312740-o5hd4hltFuzOEqbN4AdNxOWjNqEka2aN-0-4c07b14bdd9162927235c80326dc8207)
3.3.5 height和width——高和宽
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16843.jpg?sign=1739312740-xQDuZeOn9lVQQX35GhSllk2xiuWcg8NG-0-3f8d5dea9b2ea9491771dc64bf2a6596)
视频讲解
height和width属性仅用于设置<input type="image">标签的图像高度和宽度。
【示例】下面示例演示了height与width属性的应用。
<form action="testform.asp" method="get"> 请输入用户名: <input type="text" name="user_name" /><br /> <input type="image" src="images/submit.png" width="72" height="26" /> </form>
源图像的大小为288×104像素,使用以上代码将其大小限制为72×26像素,在Chrome浏览器中的运行结果如图3.42所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16837.jpg?sign=1739312740-k4YU6d8zjjgKaNk06ipvf26fdo8yoUMD-0-439692e9b229df42d9959adccf9a1aff)
图3.42 form属性的应用
3.3.6 list——列表选项
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16926.jpg?sign=1739312740-4H0k38zvQL68sNwZdBFH2VI5OEvyM4OC-0-68149b160311ad83a6251ca56972c556)
视频讲解
list属性用于设置输入域的datalist。datalist是输入域的选项列表。该属性适用于以下类型的<input>标签:text、search、url、telephone、email、date pickers、number、range和color。
演示示例可参考3.4.1节datalist元素介绍。
注意:目前最新的主流浏览器都已支持list属性,不过呈现形式略有不同。
3.3.7 min、max和step——最小值、最大值和步长
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16929.jpg?sign=1739312740-1Us6RHnRWjojY7ms3prx9NvW4Gr7Ikdk-0-11fb6361969f564c5aacb3fe9cdec9be)
视频讲解
min、max和step属性用于为包含数字或日期的input输入类型设置限值,适用于date pickers、number和range类型的<input>标签。具体说明如下:
min属性:设置输入框所允许的最小值。
max属性:设置输入框所允许的最大值。
step属性:为输入框设置合法的数字间隔(步长)。例如,step="4",则合法值包括-4、0、4等。
【示例】下面示例设计一个数字输入框,并规定该输入框接受介于0到12的值,且数字间隔为4。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_77897.jpg?sign=1739312740-10tNsbAstPtOHSJ7YrPhs3rMzRJ1pPPK-0-aaf3ba43720357c9ecd6a31a0a0422d2)
在Chrome浏览器中运行,如果单击数字输入框右侧的微调按钮,则可以看到数字以4为步进值递增,如图3.43所示;如果输入不合法的数值,如5,单击“提交”按钮时会显示错误提示,如图3.44所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16895.jpg?sign=1739312740-tvGXqJvMCDhAR2jt9NkCCdIK3pWj0EKw-0-d006ef1cec5f95337bd48f22129c2f94)
图3.43 list属性应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16896.jpg?sign=1739312740-0MWSWi1pDTwYLcHgowj9idxv3ZsHQDRC-0-2c91f701ce5906a91f9c6ba8a9242baf)
图3.44 显示错误提示
3.3.8 multiple——多选
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16932.jpg?sign=1739312740-sWm4YrDfr7OMJztLUSu0RIVNxyn5iKng-0-94aafa62c4dabe83de8d526add81c87a)
视频讲解
multiple属性可以设置输入域一次选择多个值。适用于email和file类型的<input>标签。
【示例】下面在页面中插入一个文件域,使用multiple属性允许用户一次提交多个文件。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87.jpg?sign=1739312740-9lIw0V4wC9nNjmBi0gCkPzYkskDdWlMt-0-0afbc20d7a9228baf00b82b7a0c168b3)
在Chrome浏览器中的运行结果如图3.45所示。如果单击“选择文件”按钮,则会允许在打开的对话框中选择多个文件。选择文件并单击“打开”按钮后会关闭对话框,同时在页面中会显示选中文件的个数,如图3.46所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_16955.jpg?sign=1739312740-ebD48vm8Bz1jk2fZ67o5nTSCKyCtgG6H-0-291c2a51f7a738952367a77b92cc31be)
图3.45 multiple属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_16956.jpg?sign=1739312740-LTYuprzzmEkjRLcBdhE7KMxoBZYzt6J7-0-d270c1a7fb63db251573e83b83a8b4a8)
图3.46 显示被选中文件的个数
3.3.9 pattern——匹配模式
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17011.jpg?sign=1739312740-ZjeuO2kPvvo4wmUNST6OnQMpfsrHTmdF-0-27e297a9fc0c41c2a645e6329e158284)
视频讲解
pattern属性规定用于验证input域的模式(pattern)。模式就是JavaScript正则表达式,通过自定义的正则表达式匹配用户输入的内容,以便进行验证。该属性适用于text、search、url、telephone、email和password类型的<input>标签。
提示:读者可以在http://html5pattern.com上面找到一些常用的正则表达式,并将它们复制、粘贴到自己的pattern属性中进行应用。
【示例】下面示例使用pattern属性设置文本框必须输入6位数的邮政编码。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_77901.jpg?sign=1739312740-HDsC7pDcZfTfbgDamfEWnriz2TGwI8oG-0-f0b6d6b83808a13b7de2930c6498882f)
在Chrome浏览器中的运行结果如图3.47所示。如果输入的数字不是6位,则会出现错误提示,如图3.48所示。如果输入的并非规定的数字,而是字母,也会出现这样的错误提示,因为pattern="[0-9]{6}"中规定了必须输入0~9这样的阿拉伯数字,并且必须为6位数。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17005.jpg?sign=1739312740-Sh25YZhUvDtvPu98LX4PEKyJqYJK4v6G-0-42755149df5aa509e389f26aa3bd3a6c)
图3.47 pattern属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17006.jpg?sign=1739312740-uL7oFk9r954wrTovxZO1wGsl48VIfM7x-0-f02de5e81b296365e0e7550f8607020d)
图3.48 出现错误提示
3.3.10 placeholder——替换文本
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17014.jpg?sign=1739312740-VX8Vq2APR3ndZqlV6T9c9GuoGH1iJeYp-0-cb50f0d17b9e54bb6a6c6b5a4f831ede)
视频讲解
placeholder属性用于为input类型的输入框提供一种文本提示,这些提示可以描述输入框期待用户输入的内容,在输入框为空时显示,而当输入框获取焦点时自动消失。placeholder属性适用于text、search、url、telephone、email和password类型的<input>标签。
【示例】下面是placeholder属性的一个应用示例。请注意比较本例与上例提示方法的不同。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_77903.jpg?sign=1739312740-0b0e4kCFq1NhTjiYO2gq5rxv7gE4RbMh-0-9588e7fd3ce3a8ae8256f0aa2e75390b)
以上代码在Chrome浏览器中的运行结果如图3.49所示。当输入框获得焦点并输入字符时,提示文字消失,如图3.50所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17068.jpg?sign=1739312740-zM42hnnOleMI3LJFk4RfcPODExAj1VgT-0-7de6e32b3ae794b46ba2e95b8f59b191)
图3.49 placeholder属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17069.jpg?sign=1739312740-ut11kjX9uWJkAvLcpsXeHvfA8z2xq9ZH-0-7f116ec9f298c45f8a8b86707d2b5ecc)
图3.50 提示消失
3.3.11 required——必填
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17102.jpg?sign=1739312740-D3sWzg65lhlKho0WsUo97a8S1DgBIYij-0-84f5716404ac65e4962ce6cdfea688af)
视频讲解
required属性用于定义输入框填写的内容不能为空,否则不允许提交表单。该属性适用于text、search、url、telephone、email、password、date pickers、number、checkbox、radio和file类型的<input>标签。
【示例】下面示例使用required属性规定文本框必须输入内容。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_77905.jpg?sign=1739312740-DWN97ESh6INbrbTxUE9gvzNRwJzt6XC6-0-74733e729a61d269f4c5bd36d40d2875)
在Chrome浏览器中的运行结果如图3.51所示。当输入框内容为空并单击“提交”按钮时,会出现“请填写此字段”的提示,只有输入内容之后才允许提交表单。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17099.jpg?sign=1739312740-wuwtIH34n9SbudKkv3gvKSbMWjFFon2T-0-d0def08b8ecf9fcc2e75adc6920e8199)
图3.51 提示“请填写此字段”