一:什么是HTML5的form自动完成功能?
首先,HTML5 中有个新属性autocomplete ,autocomplete 属性规定表单是否应该启用自动完成功能,它自动完成允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项。
如:
1
2
3
4
5
6
7
8
|
<
form
autocomplete
=
"on"
>
First name:<
input
type
=
"text"
name
=
"fname"
/><
br
/>
Last name: <
input
type
=
"text"
name
=
"lname"
/><
br
/>
E-mail: <
input
type
=
"email"
name
=
"email"
autocomplete
=
"off"
/><
br
/>
<
input
type
=
"submit"
/>
</
form
>
<
p
>请填写并提交此表单,然后重载页面,来查看自动完成功能是如何工作的。</
p
>
<
p
>请注意,表单的自动完成功能是打开的,而 e-mail 域是关闭的。</
p
>
|
会发现,autocomplete="on"的会被“记录下来”,而E-mail的autocomplete="off",再次输入时不会被“记录”。这就是“HTML5中form的自动完成功能”啦!
还不太清楚的可以去w3school手册继续学习。
二:如何关闭自动完成功能?
有时候我们希望关闭输入框的自动完成功能,例如当用户输入内容的时候,我们希望使用AJAX技术从数据库搜索并列举而不是在用户的历史记录中搜索。
关闭输入框的自动完成功能有3种方法:
1、在IE的Internet选项菜单里的内容--自动完成里面设置
2、设置Form的autocomplete为"on"或者"off"来开启或者关闭自动完成功能
(关闭整个表单(form)自动提示功能)
3、设置输入框(input)的autocomplete为"on"或者"off"来开启或者关闭该输入框的自动完成功能(关闭密码域的自动完成)
测试代码:(在每个form输入文字然后提交,然后再回来看看能否自动完成,注意要提交后才能有历史记录,才可能自动完成;提交后页面可能出错,不用管它,后退回去即可)
打开自动完成功能的Form<br>
1
2
3
4
5
6
7
|
<
form
name
=
"form1"
autocomplete
=
"on"
>
打开自动完成功能的输入框
<
input
type
=
"text"
autocomplete
=
"on"
><
br
>
关闭自动完成功能的输入框
<
input
type
=
"text"
autocomplete
=
"off"
><
br
>
<
input
type
=
"submit"
value
=
"提交"
><
br
>
</
form
>
|
关闭自动完成功能的Form<br>
1
2
3
4
5
6
7
|
<
form
name
=
"form1"
autocomplete
=
"off"
>
打开自动完成功能的输入框
<
input
type
=
"text"
autocomplete
=
"on"
><
br
>
关闭自动完成功能的输入框
<
input
type
=
"text"
autocomplete
=
"off"
><
br
>
<
input
type
=
"submit"
value
=
"提交"
><
br
>
</
form
>
|
建议:不要全部关闭自动完成功能,根据需要禁用一部分自动完成功能即可,如果你觉得浏览器自带的自动完成功能还不够强大,可以使用jquery插件来实现更加强大的自动提示完成功能。
比如百度搜索框的自动提示功能就非常强大。