强制关闭自动完成功能

时间:2014-06-18 11:49:36

标签: html5 input

我的问题是,当预填充输入字段时,Safari将覆盖该值。 Chrome似乎做得很好。

以下是我的尝试:

<input autocomplete="off" type="email" id="email" name="email" value="someemail@email.com">

但是Safari自动填充管理器仍会覆盖&#34; someemail@email.com"已经由自动填充管理器保存的东西。

我搜索了互联网,显然autocomplete="off"在大多数浏览器中都不起作用,即使我使用的是HTML5。这是真的还是有一些解决方案?

1 个答案:

答案 0 :(得分:2)

我认为最常用的跨浏览器方式,虽然服务器方面有点痛苦,但可以通过将控件名称与特定于会话的数据连接来“随机化”部分名称。

因此,在渲染字段之前,将名称与哈希值甚至时间戳之类的随机值连接起来,以便得到类似的内容:

<input type="email" id="email" name="email20140618135501.255" value="someemail@email.com">

最重要的是将此值存储在会话变量中,以便您可以在每个字段上使用相同的值,但最重要的是,您可以使用它在POST请求后获取该字段的值。

但重要的是要注意,您不应代表您的用户选择是否使用自动填充功能,除非您知道自己正在处理敏感信息......或者如Colin所说的那样,如果您确定知道的话自动完成可能完全没用,甚至在该领域适得其反。