如何禁用chrome / jquery的自动完成和自动填充

xpcnnkqh  于 2023-08-01  发布在  Go
关注(0)|答案(5)|浏览(147)

我想禁用Chrome自动完成和Chrome自动填充。
我正在使用JQuery UI来自动完成一个输入字段。我的jquery-ui autocomplete工作正常,但是chrome浏览器在我的上面显示它自己的 autofill,这使得用户很难选择正确的下拉项。
我用的是autocomplete="off",它似乎禁用了chrome的自动完成功能,但显示了 * 自动填充选项 *。
我尝试了以下方法:

  • autocomplete="chrome-off"autocomplete="false"autocomplete="disabled"

这些属性值(或任何无效的属性值)似乎禁用了 *autofill,但启用了 autocomplete

**重要:**我不能使用随机名称属性,因为我正在为自己的jquery-ui自动完成 AJAX 请求

raogr8fs

raogr8fs1#

autocomplete=“off”
已经不管用了。从2019年起唯一有效的是
autocomplete=“新密码”

iswrvxsc

iswrvxsc2#

最后,我结合了几个不同的答案找到了解决方案。

步骤1

为了解决自动完成的问题,您可以添加一个虚拟的不可见输入字段,如here所述。所以你的html应该看起来像这样:

<input id="dummy_location" type="search" name="dummy_location" style='display: none;'>
<input id="location" type="search" name="location">

字符串
这将导致 chrome 自动填充弹出

步骤2

要禁用自动填充弹出窗口,我们需要像这样为 autocomplete 属性添加一个无效值。

$("#fromcity_ac").attr({
     autocomplete: "chrome-off",
});

你可以在这里停止

Chrome可以正常工作,但是,自动完成问题会在其他浏览器上弹出,如firefox。要解决此问题,您可以编辑步骤2,检查正在使用的浏览器,并为自动完成属性设置适当的值。

var isChromium = window.chrome;
var winNav = window.navigator;
var vendorName = winNav.vendor;
var isOpera = typeof window.opr !== "undefined";
var isIEedge = winNav.userAgent.indexOf("Edge") > -1;
var isIOSChrome = winNav.userAgent.match("CriOS");

// Autocomplete default value
var autocomplete = "chrome-off";
if (isIOSChrome) {
  // is Google Chrome on IOS
} else if (
  isChromium !== null &&
  typeof isChromium !== "undefined" &&
  vendorName === "Google Inc." &&
  isOpera === false &&
  isIEedge === false
) {
  // Is google chrome
} else {
  // Is firefox
  autocomplete = "off";
}

fykwrbwg

fykwrbwg3#

到2022年初,这似乎是可行的:

autocapitalize="off" autocomplete="off" autocorrect="off" autofocus="" role="combobox" spellcheck="false"

字符串
这是谷歌主页搜索框中使用的技术。

vh0rcniy

vh0rcniy4#

autocomplete="off"autocomplete="random-value"。这是目前的临时解决方案。

dldeef67

dldeef675#

试试这个,这对chrome很有效

autocomplete="chrome-off"

字符串

相关问题