阻止浏览器文本输入建议 2021 chrome 版本 88.0.4324.190

Preventing Browser Text Input Suggestions 2021 chrome version 88.0.4324.190

如何防止来自浏览器 cookie 的浏览器文本输入建议,autocomplete="off" 和其他方法不起作用.. Chrome 版本:2021 chrome 版本 88.0.4324.190

只读适用于自动填充,但自动提示不是。

 <input type="email" class="form-control" id="email" name="email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" style="background-color: white;" autocomplete="off">   
<input type="password" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password">

在 Chrome 中唯一仍然有效的是创建与字段无关的随机名称。喜欢 autocomplete="new-password" 到密码字段名称。
似乎是错误的,但这是一个解决方法。

因此,对于名为 email 的字段,请尝试输入 autocomplete="new-email".

即使在下面的 SO 中工作,autocomplete="off" 仍然有问题:
Disabling Chrome Autofill

Also note that autocomplete="no" will appear to work but autocomplete="off" will not for historical reasons. autocomplete="no" is you telling the browser that this field should be auto completed as a field called "no". If you generate unique random autocomplete names you disable auto complete.

您需要记住这是密码管理器的一项功能。
Mozilla 在这里正确地说明了这一点:
Preventing autofilling with autocomplete="new-password"

为什么不能总是预防:
Browser compatibility

Note: In most modern browsers, setting autocomplete to "off" will not prevent a password manager from asking the user if they would like to save username and password information, or from automatically filling in those values in a site's login form. See the autocomplete attribute and login fields.

解决方案 #1:

如您所见,自动提示显示 From this website
作为解决方法,您需要将字段名从 name="email" 更改为其他名称,例如 name="user-email"。 并处理服务器逻辑内部的变化。

再次在您的服务器逻辑中,每次显示页面时生成一个随机名称,例如 UUID autocomplete="c821c4f0-7be8-11eb-9439-0242ac130002"

解决方案 #2:

将输入类型 type="email" 替换为 type="text"

html:

<input type="text" class="form-control" id="user-email" name="user-email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" autocomplete="off" />

javascript:

window.onload = function () {
    init();
}

function init() {
    let x = document.getElementById("user-email");
    if (x) x.setAttribute("type", "email");
}

解决方案 #3:

在真实字段之前添加隐藏字段:

PS: 不要忘记在表单中放置 autocomplete="off" 字段属于

你要的都在这里

type="password" 更改为 type="text" 并在您的输入中使用 -webkit-text-security: disc !important;

<input type="text" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password" style="-webkit-text-security: disc !important;">