Google Chrome版本76.0.3809.100(官方内部版本)(64位)自动完成行为

时间:2019-09-11 05:24:37

标签: javascript google-chrome autocomplete frontend

我想在所有浏览器中禁用google chrome的永久自动完成功能,以实现用户体验(我的Chrome版本为76)。 我尝试了许多解决方案,包括:

1)。来自的答案 Chrome ignores autocomplete="off"

2)。来自的所有答案 autocomplete ='off' is not working when the input type is password and make the input field above it to enable autocomplete

其中

1)。 Autocomplete =“ off”,autocomplete =“ somerandomstring”

2)。用隐藏的样式在其上方创建另一个假输入

3)。用不可见的div包裹

似乎两个链接的答案都是针对Google chrome过期版本的解决方案,该版本很可能早于76 chrome版本。

<input name="number" type="text" class="form-control search" placeholder="No. Invoice" >
//this input is getting filled with persistent google chrome autocomplete

预期的输出:未填充自动填充

实际输出:已填充

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我只是遇到了同样的问题,原始答案似乎都无效。

当我使用占位符文本时,我想出了一种解决方案:如果值是空白,则将占位符文本添加为​​值,然后更改颜色,然后使用onfocus事件删除等于的值占位符并删除颜色。

这里是一个例子:

<input type="text" class="form-control" id="search" placeholder="Search Users" value='Search Users' style="color: #6c757d;" onfocus="if (this.value == this.placeholder) {this.value=''; this.style.color=null;}">

您仍然需要注意的事情:

  • 您需要将此添加到每个输入中。
  • 您需要在验证时检查输入不等于占位符。

我发现还有另一个解决方案:

为空输入添加一个值,然后使用超时将其删除,这应该在自动完成功能运行后发生。

html:

<input type="text" class="form-control NoAutoComplete" id="search" placeholder="Search Users" value='Search Users'>

CSS:

.NoAutoComplete {
  color: #6c757d;
}

JS:

setTimeout(function () {
    $(".NoAutoComplete").val("");
    $(".NoAutoComplete").removeClass( "NoAutoComplete" );
}, 1000);

我对此并没有做太多的研究,但是您应该能够将一个类添加到所有不需要值的输入中,然后同时删除所有值和类。