如何阻止 Chrome 自动完成文本区域?

Posted

技术标签:

【中文标题】如何阻止 Chrome 自动完成文本区域?【英文标题】:How to stop Chrome from autocompleting text areas? 【发布时间】:2017-08-30 06:08:26 【问题描述】:

我正在处理 Chrome 希望自动填充用户地址的联系表单的一部分中的文本区域。结果,许多联系请求是由用户提交的,他们的地址在评论字段中。除了可能被利用的明显的潜在安全问题外,我担心的是,从用户的角度来看,我们提供的联系表格没有输入消息的区域。从支持的角度来看,我们不得不要求用户向我们发送另一条带有实际问题的消息。

html

 <textarea id="element_10" class="validate[required] floatlabel js-auto-size multiple-lines" name="element_10" placeholder="Message*" rows="10" cols="60" required autocomplete="off"></textarea>

【问题讨论】:

谁发现了这个,这是一个似乎在不断更新的旧 SO 问题:Disabling Chrome Autofill 【参考方案1】:

回答我自己的问题,因为我没有在 Stack 或任何 Chrome 浏览器文档中找到答案。

在某些情况下,浏览器会不断提示自动完成值 即使自动完成属性设置为关闭。这出乎意料 行为对于开发人员来说可能非常令人费解。真正的诀窍 强制不自动完成是为 属性,例如:

autocomplete="nope"

由于这个随机值无效,浏览器会放弃。

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

【讨论】:

实际上可能并非在所有情况下都有帮助。更多细节在 Chrome 错误讨论中:bugs.chromium.org/p/chromium/issues/detail?id=914451#c99【参考方案2】:

我尝试了所有建议,但没有一个真正始终如一的工作。

如果我将一个输入设置为 autocomplete="nope" 它可以工作。

如果我设置了两个或更多,它会破坏它们。

如果我将两个设置为 autocomplete="nope" 和 autocomplete="no" 它适用于这两个,但如果我对第三个做任何事情,它会再次中断。

我的表单只有 3 个输入。我只是设置了电子邮件和电话,只留下了名字。这几乎解决了我的问题。

我有一些 jquery 验证,几乎不能使用自动完成功能,这个客户真的不想被垃圾邮件所困扰。

Chrome 也将单行文本区域与输入完全相同。

【讨论】:

以上是关于如何阻止 Chrome 自动完成文本区域?的主要内容,如果未能解决你的问题,请参考以下文章

文本区域中的 Twitter 样式自动完成

多词预测/自动完成文本区域? [关闭]

像在 IDE 中一样在文本区域中反应自动完成(例如 VS Code、Atom)

如何阻止 Chrome 在我的文本区域中添加额外的换行符?

在谷歌浏览器中使黄色自动完成透明[重复]

基于浏览器的 IDE - 具有代码完成功能的文本区域?