自动填充功能无法在Chrome上运行

时间:2016-11-18 07:59:40

标签: html google-chrome autocomplete

我的网站上存在一个问题,即Chrome autocomplete似乎无效。 它一直在工作,但不是一贯的。

例如,我有一个input字段,如下所示:

<input type="text" class="gwt-TextBox Inputfield TextInputfield form-control" maxlength="40" name="name" autocomplete="name" width="0" style="max-width: 26em; width: 100%;">

当我开始输入我的名字时,autocomplete下拉菜单将按预期打开,但是当我在autocomplete下拉列表中选择我的名字时,没有任何事情发生,但下拉菜单会关闭。

Screensnip of the issue

控制台中没有记录任何异常。

包含字段的页面为here

8 个答案:

答案 0 :(得分:1)

我碰到了同样的问题。解决方案是将要自动完成的字段包装为以下形式:

<form>
<input type="text" ...
</form>

现在从自动完成功能中选择一个选项实际上将填写该字段。

答案 1 :(得分:0)

尝试更改输入的名称,也可以使用“地址”之类的“地址”之类的名称,如果您想保留“地址”之类的占位符,则可以在列表的第一个字母中使用Cyrlic字母,这样可以防止自动填充:)希望对您有帮助

答案 2 :(得分:0)

在 2021 年初偶然发现了这个答案。我的问题是自动完成没有在某些字段上触发。向字段添加 id 属性解决了我的问题,因此更改

<input type="text" name="my_field_name" /> (not working) 

<input type="text"  name="my_field_name" id="my_unique_id" /> (working)

开始记住之前提交的值。

答案 3 :(得分:0)

我创建了一种使其工作的方法,只需设置所有输入(自动完成=“关闭”),然后将其更改为密码并返回原始类型。这是必要的,因为 Chrome 和其他浏览器不能很好地接受这个属性,所以你必须欺骗它才能让它工作:

var x = document.forms;
var i, j, field;
for (i = 0; i < x.length; i++) {
    for (j = 0; j < x[i].elements.length; j++) {
        field = x[i].elements[j].type;
        x[i].elements[j].setAttribute('autocomplete', 'off');
        x[i].elements[j].setAttribute('type', 'password');
        x[i].elements[j].setAttribute('type', field);
    }
}

引用是:How do you disable browser autocomplete on web form field / input tags?

答案 4 :(得分:-1)

autocomplete属性只能处理两个值; “开”或“关”。

至于您的代码,建议将autocomplete="on"保持在<form>级别。但是,如果要仅为名称输入字段保留此功能,则代码应为:

<input type="text" class="gwt-TextBox Inputfield TextInputfield form-control" maxlength="40" name="name" autocomplete="on" width="0" style="max-width: 26em; width: 100%;">


PS:

  

在某些浏览器中,您可能需要激活自动完成功能   这工作(在浏览器菜单中的“首选项”下查看)

答案 5 :(得分:-1)

尝试这样的事情。在表单标记中添加以下autocomplete="on",并输入标记。

  <form action="" method="post" autocomplete="on">
   First Name: <input type="text" class="gwt-TextBox Inputfield TextInputfield form-control" maxlength="40" name="name" autocomplete="on" width="0" style="max-width: 26em; width: 100%;">
   <input type="submit" value="Submit">
  </form>

答案 6 :(得分:-2)

我认为autocomplete =“name”是一个真正的false属性, 所以你可能正在寻找其他属性?或者是一个js函数

答案 7 :(得分:-3)

属性自动填充必须是“开”或“关”

<input autocomplete="on|off">

参考here