添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
`text, search, url, telephone, email, password, datepickers, range` 以及 `color`。 通常,自动完成是**浏览器**默认启用的,但是对于用户来说,明显是有隐私风险的,因此浏览器会允许用户通过设置浏览器来禁用自动完成。但是,一些数据在表单提交之后就不会再用了(比如一次性的pin码)或者
自动完成(`autocomplete`)允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器会基于之前键入过的值,显示出在输入框中填写的选项。 `autocomplete`属性适用于`form`表单,以及表单内的`input`类型:`text, search, url, telephone, email, password, datepickers, range` 以及 `color`。
自动完成(`autocomplete`)允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器会基于之前键入过的值,显示出在输入框中填写的选项。 `autocomplete`属性适用于`form`表单,以及表单内的`input`类型:`text, search, url, telephone, email, password, datepickers, range` 以及 `color`。
不同浏览器的autocomplete特性
Max

自动完成( autocomplete )允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器会基于之前键入过的值,显示出在输入框中填写的选项。

autocomplete 属性适用于 form 表单,以及表单内的 input 类型: text, search, url, telephone, email, password, datepickers, range 以及 color

通常,自动完成是 浏览器 默认启用的,但是对于用户来说,明显是有隐私风险的,因此浏览器会允许用户通过设置浏览器来禁用自动完成。但是,一些数据在表单提交之后就不会再用了(比如一次性的pin码)或者包含敏感信息(如身份证、信用卡安全码等)。作为网站开发者,在这些情况下,当然会希望不管浏览器有没有启用自动完成功能,都统一禁用它。

浏览器支持哪些类型的autocomplete取值?

这里有个 列表

如何禁用自动完成?

通常,禁用的方法是给 form 表单设置一个 autocomplete="off" ,这样会完成两件事:

1、告诉浏览器不要记录用户输入的内容,以用于下次自动填写这个或者类似表单,尽管各个浏览器遵循的规则大相径庭;
2、禁止浏览器在 session 历史中缓存表单数据。当表单数据被缓存在 session 历史中时,某些情况下,用户提交表单然后返回表单页面之后,信息会自动填写。

通常,给表单设置就可以完成禁用功能。但是在Chrome下有个问题,就是只给form表单设置 autocomplete="off" ,而内部各个 input 框不设置 autocomplete="off" ,在用户需要自动填写建议(通常是双击输入框)时,Chrome会给提示 “当前表单禁止自动填写” ,当表单和内部 input 框都设置了 autocomplete="off" ,则不会有这个提示。

所以,给表单和内部所有 input 框都设置 autocomplete="off" 是更稳妥的做法。该问题的具体说明在 这里

但是,总有些例外……有时候(不知道具体什么时候)浏览器会在自动完成设置了off之后继续提供自动完成的值!如果遇到这个情况,可以试试给input框取不在自动完成取值列表里的值,比如 autocomplete="nope" ,这样,浏览器找不到自动完成的类型,就会放弃尝试。

例外的例外,就是登录表单!

作为开发者,可能尝试给登录表单的 autocomplete 设置 off、on、true、false、nope、wtf 等等值,并且不管是给表单设置,还是给输入框单个设置,发现都完全没有效果。之前说好的可以的,为什么到登录表单这里,浏览器就说话不算数了呢?

登录表单的自动完成,以及各浏览器表现

现代浏览器一般都实现了统一的密码管理:当用户输入账号密码登录了一个网站,浏览器就会记住账号和密码,下次登录就不用再次输入账号密码。这样的好处很明显:所有的记录都在浏览器端,增强了网络安全性,并且得益于自动填写,用户可以选择更复杂难记的密码以增强安全性。因此,很多的浏览器在登陆表单这里,开始不支持 autocomplete="off" 设置,具体表现在两方面:

1、如果网站给表单设置了 autocomplete="off" ,同时表单包含账号和密码框,浏览器仍然会记住密码,如果用户同意,浏览器会在下次访问时自动填写;

2、如果网站给账号和密码输入框设置了 autocomplete="off" ,浏览器仍然会记住密码,如果用户同意,浏览器会在下次访问时自动填写。

这个特性在Firefox (> 38), Google Chrome (> 34)和Internet Explorer (> 11)可见。

但是有时候,开发者不得不禁用密码框的自动填写,因为很有可能另外一个人也在某个时候用这台电脑,这时候自动填写就比较尴尬了。这时候,可以使用 autocomplete="new-password" 来强制填写新密码。不过这个特性只可见于chrome,Firefox还不支持。

并且,自动填写作为一个浏览器操作,触发的事件和效果也各不相同:

firefox :触发input事件,并且底色不会改变;

chrome :不触发input事件,底色变为浅黄色;

搜狗 :触发input事件,底色变为浅黄色。

所以希望通过input来统一处理,首先要过chrome这一关。

如何禁用自动填写

chrome ,只需要给密码框设置**autocomplete=”new-password”**即可不记住密码;