![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=1739420169-Rl4mE4kiX4AN5qcK5HJWVGpxALXOO1C7-0-732442eadbbfbd22d954b35e3bff8e02)
视频讲解
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=1739420169-PliFtMzQvughCxh9hENO6hJvCSy9pbDC-0-89f8bd82306ebd87f637a069c3f595a3)
在浏览器中预览,当用户将焦点定位到文本框中时,会自动出现一个城市列表供用户选择,如图3.36所示。而当用户单击页面的其他位置时,这个列表就会消失。
当用户输入时,该列表会随用户的输入自动更新,例如,当输入字母q时,会自动更新列表,只列出以q开头的城市名称,如图3.37所示。随着用户不断地输入新的字母,下面的列表还会随之变化。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16516.jpg?sign=1739420169-TvmjlfVKLgow6k9b4q1yDwviTUW1LBX9-0-2885e240150d75ccfd35acbc82b6f8c6)
图3.36 自动完成数据列表
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16517.jpg?sign=1739420169-ptSmzfhBtaXYA0Cbb2zelWpVs1hY9vFb-0-87888a6df3d3291cd4946352942c16c9)
图3.37 数据列表随用户输入而更新
提示:多数浏览器都带有辅助用户完成输入的自动完成功能,只要开启了该功能,浏览器会自动记录用户所输入的信息,当再次输入相同的内容时,浏览器就会自动完成内容的输入。从安全性和隐私的角度考虑,这个功能存在较大的隐患,如果不希望浏览器自动记录这些信息,则可以为form或form中的input元素设置autocomplete属性,关闭该功能。
3.3.2 autofocus——自动获取焦点
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P83_16616.jpg?sign=1739420169-AsMADiOt5v9VdtcA7IyGPt1nJup9JSUV-0-b269b7281cf1030c880def495e0fe766)
视频讲解
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=1739420169-XuSLuQllcE7W0brlfkIT3uy4HRzaVuAp-0-069e5cdfd1e3643c8edcbf8f74d28c63)
以上代码在Chrome浏览器中的运行结果如图3.38所示。页面载入后,“同意”按钮自动获得焦点,因为通常希望用户直接单击该按钮。如果将“拒绝”按钮的autofocus属性值设置为on,则页面载入后焦点就会在“拒绝”按钮上,如图3.39所示,但从页面功用的角度来说这样并不合适。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16656.jpg?sign=1739420169-bQY7jtE3metcotnapgTbkJzPQ12fCrRK-0-801d1af3a5f1f30be246b50b618ba77c)
图3.38 “同意”按钮自动获得焦点
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16657.jpg?sign=1739420169-pJWgn3HHqYRCfsAwFz3bpu57UntHgfEg-0-ec8866f4afa2b5d14389aee86c16861a)
图3.39 “拒绝”按钮自动获得焦点
【示例2】如果浏览器不支持autofocus属性,可以使用JavaScript实现相同的功能。在下面脚本中,先检测浏览器是否支持autofocus属性,如果不支持则获取指定的表单域,为其调用focus()方法,强迫其获取焦点。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_77892.jpg?sign=1739420169-hMeLDg4dpzaVXqDUMMgjH5iZHamjBbq8-0-5c66592736bc7506afeb652f737f141e)
3.3.3 form——归属表单
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P84_16739.jpg?sign=1739420169-PkpwZ3t8feZe7eHKa8RCRtfFLONziakA-0-4e92525d25cd31fdc1498c0175f22969)
视频讲解
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=1739420169-2LHrdG22siQkdqAu0NCWwqpuwBOUnP8h-0-b3646fa6ef5bb9e4ca1571bded152dac)
图3.40 form属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16761.jpg?sign=1739420169-sMcqX8Z95mEHig7YhvV1yBiR4n37sChL-0-22dad07be3cb569836b98f223b1af348)
图3.41 地址中要提交的数据
3.3.4 表单重写
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16840.jpg?sign=1739420169-g9Ir9JJmKZyfKbax1MnctlHa7cTFBQRI-0-158d002ff4608001baa5bbacb6aa2d7d)
视频讲解
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=1739420169-jGN70rALbDsekWnq5XNKyOXvNoN6kWgt-0-e09b32639d48dda50704ee723db32fe7)
3.3.5 height和width——高和宽
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P85_16843.jpg?sign=1739420169-P3JsfHin2gdqWkQSs92Ac9wVEho7hfOX-0-d08a50acff724740ab3a0e14fdd68b3d)
视频讲解
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=1739420169-Z3zQ9fT7UIDhPTkWIir0rulEz2HvvNWt-0-d76bb755a41a60a7b977bb6a02adc3d7)
图3.42 form属性的应用
3.3.6 list——列表选项
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16926.jpg?sign=1739420169-NCJ7QwNy7e6JFLC58nVtHa9bKxE9dWxo-0-53c423549875eb4cf52618bcede615c8)
视频讲解
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=1739420169-9HSAoE6NiWC1xULmAffBKXigAP2ys0pD-0-9cb48b83c986fe7175ef97212cff19bd)
视频讲解
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=1739420169-fVy6MQ5qUoOUR1nQrP3VE1iUwlG5VOTh-0-9ade50ca8e89b8de9de7ab8dea5f198c)
在Chrome浏览器中运行,如果单击数字输入框右侧的微调按钮,则可以看到数字以4为步进值递增,如图3.43所示;如果输入不合法的数值,如5,单击“提交”按钮时会显示错误提示,如图3.44所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16895.jpg?sign=1739420169-ZP6syrHgWp0VwodFYWCq9CCpqGYjw6Lh-0-bf727c81e6dc9e13455f42bf2fa18c92)
图3.43 list属性应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16896.jpg?sign=1739420169-ok73dPHL621cfTPbyqUEJlBJbRwgejw0-0-a5f33f61caddf3a6c444505115f79551)
图3.44 显示错误提示
3.3.8 multiple——多选
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P86_16932.jpg?sign=1739420169-XjUVIfZontRCQnzsIONIaKcICsy2SSGi-0-b0d1b2aa4a93cba9731512ffb78f4bf1)
视频讲解
multiple属性可以设置输入域一次选择多个值。适用于email和file类型的<input>标签。
【示例】下面在页面中插入一个文件域,使用multiple属性允许用户一次提交多个文件。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87.jpg?sign=1739420169-tzNIVs8jmN0cl1aZHAGxeFFFkbpGLQkE-0-b28671147d91c9e0dcf1a3a0fea204c8)
在Chrome浏览器中的运行结果如图3.45所示。如果单击“选择文件”按钮,则会允许在打开的对话框中选择多个文件。选择文件并单击“打开”按钮后会关闭对话框,同时在页面中会显示选中文件的个数,如图3.46所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_16955.jpg?sign=1739420169-tSfouvyfjyR3LdNDYm9MKrk44sCckGFJ-0-e7d2463bca3ebe5742f75ca32dd286ba)
图3.45 multiple属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_16956.jpg?sign=1739420169-7c6mIuJtuBF1Wsr2zjG4QmlM12Zpx4qX-0-d66b562d02193c2ef6c02aaa76da8837)
图3.46 显示被选中文件的个数
3.3.9 pattern——匹配模式
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17011.jpg?sign=1739420169-DkqkfaZbfa8pa3itx3o0tI7YFnq8Xihg-0-f1f292c196ade3bbbff365695548dab3)
视频讲解
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=1739420169-BOBpM6MiJ9BDyymg6uWQ7ZdUi8aiF6VO-0-853911470d2c9cc0cd132e42141c8df7)
在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=1739420169-3pCLq8St7CSXDBMuWqOsmGsiYgelUTNY-0-8c150b3cc7bcb360ea8f399c629ddba4)
图3.47 pattern属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17006.jpg?sign=1739420169-xw8UgxtWCvp6H0VPSTZPGNwc4bhn4LKC-0-7231f9712f8750989043bec84b05c093)
图3.48 出现错误提示
3.3.10 placeholder——替换文本
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P87_17014.jpg?sign=1739420169-eadN18o2Oj1m8nFqylzGJVtdPF6hr6ba-0-52ce241d7564c6278f8e8105c42f4e50)
视频讲解
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=1739420169-Gt6Nmcw8m0BaEOLjDllK8qOESqPyamP2-0-40eb06a8f2aac01baf3879710ad0b6be)
以上代码在Chrome浏览器中的运行结果如图3.49所示。当输入框获得焦点并输入字符时,提示文字消失,如图3.50所示。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17068.jpg?sign=1739420169-2puffPp3zb2pkBVNdhscyvdfFVRQGpcG-0-7dbd97a2062fd63e7cf2330d5db3710e)
图3.49 placeholder属性的应用
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17069.jpg?sign=1739420169-wz1Vj3Lqw6wYwLCgjB9k84CzhVIJAl2K-0-cb8ab97a2859501ddcaeb3ce185cdf55)
图3.50 提示消失
3.3.11 required——必填
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17102.jpg?sign=1739420169-9vh9B3tUxoCDwgGUPDvSWwRJ0r2AujWS-0-83a95073be3d9df7aa808ceadf8f9e7b)
视频讲解
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=1739420169-BvSZRnQoKFrqTCqkFbMJnzoa3T6mYfDh-0-bab91ecbb3c3ffad96c3f3738ab2d22f)
在Chrome浏览器中的运行结果如图3.51所示。当输入框内容为空并单击“提交”按钮时,会出现“请填写此字段”的提示,只有输入内容之后才允许提交表单。
![](https://epubservercos.yuewen.com/1B54E6/13043253503832006/epubprivate/OEBPS/Images/Figure-P88_17099.jpg?sign=1739420169-lmQQMY6KzuaNLVIyGqRxno5F2EqI1ag5-0-c7134fba1c5d5c9fd44d7329f4212005)
图3.51 提示“请填写此字段”