如何停用输入的记忆值?

How can I deactivate remembering values for inputs?

我有这样的输入:

<input name="username" placeholder="Email" type="email" autocomplete="off" />

如您所见,我已将 autocomplete 属性设置为 off。但是当我打开那个页面时,以前的值仍然存在:

那么我该如何避免呢?实际上我的问题是丑陋的背景颜色输入。当我更改它的值时,它看起来像这样:

无论如何,我怎样才能停用输入缓存?

尝试执行以下操作:

<form autocomplete="off" ...></form>

它可能有效...或者您也可以这样做。

$('#textfield').attr('autocomplete','off');

或使用autocomplete="false",而不是autocomplete="off"

当它只是关于设计尝试

input:-webkit-autofill {
    transition: background-color 5000s ease-in-out 0s;
}

在你的 css

不幸的是 Google chrome 每个新版本都会更改它的自动完成设置。当你现在想禁用它们时,你必须每次都更新你的解决方案以防止它在进一步的版本中出现

编辑:
唯一的事情您可以停止自动填充,完全记住密码就是提供不包含 "name" 或 "password" 的 ID

正如你在问题中提到的,输入框的背景颜色是你的问题,那么你可以随意更改它。

您可以使用:

input:-webkit-autofill {
   -webkit-box-shadow: 0 0 0px 1000px white inset;
}

这会将背景更改为白色。或者您可以将其更改为您喜欢的任何颜色。

想必您的页面上也有密码字段?如果不是,您可以生成一个随机字段名称并从请求对象的 key/value 集合中获取值(可能使用已知前缀)。

在查看了所有与禁用自动完成有关的答案并尝试了大约 20 种组合后,发现以下内容适用于所有当前浏览器(包括最新的 Firefox、Chrome、IE 11 和 IE Edge)

在表单顶部放置 2 个没有名称和制表符的虚拟输入(1 个文本和 1 个密码),但将它们设置为隐藏(例如,放置在屏幕外,但实际上不是 display: none

例如

<input tabindex="-1" style="left: -9999px;" type="text">
<input tabindex="-1" style="left: -9999px;" type="password">

即使是最智能的浏览器,它会查找第一个密码字段(无论其名称如何)并将自动完成附加到先前的输入,也可以使用此功能。