谷歌浏览器自动完成功能无法使用

8
我在我们的网站上遇到一个问题,Chrome的“自动填充”似乎不起作用了。 它过去可以工作,但不是一直如此。
例如,我有一个像这样的字段:
<input type="text" class="gwt-TextBox Inputfield TextInputfield form-control" maxlength="40" name="name" autocomplete="name" width="0" style="max-width: 26em; width: 100%;">

当我开始输入我的名字时,自动完成下拉框会如预期地打开,但是当我在自动完成下拉框中选择我的名字时,除了关闭下拉框之外,什么都不会发生。

Screensnip of the issue

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

包含这些字段的页面在此处

8个回答

6

在2021年初看到了这个答案。我的问题是自动完成功能在某些字段上没有触发。将id属性添加到字段中解决了我的问题,所以只需更改:

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

to

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

开始记忆之前提交的值。


0
尝试更改输入名称,使用类似“位置”而不是“地址”的内容。如果您想保留占位符“地址”,可以使用西里尔字母至少作为第一个字母,这应该可以防止自动填充 :) 希望能有所帮助。

-1

我刚遇到了同样的问题。解决方法是将您想要自动完成的字段包装在一个表单中:

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

现在从自动完成中选择一个选项将会真正填充该字段。


-1

我创建了一种方法使其工作,只需设置所有输入(autocomplete =“off”),然后将其更改为密码,再改回原始类型。这是必要的,因为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);
    }
}

参考链接为:如何在Web表单字段/输入标签上禁用浏览器自动完成?

-2
尝试像这样做。在您的表单标签和输入标签中添加以下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>

-3

我认为autocomplete="name"是一个真假属性,所以你可能要寻找另一个属性?或者一个JS函数。


-4

autocomplete 属性只能处理两个值;"on" 或 "off"。

至于你的代码,建议在 <form> 级别上保持 autocomplete="on"。但是,如果你只想为名称输入字段保留此功能,则代码应该如下:

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


附言:

在某些浏览器中,您可能需要激活自动完成功能才能使其正常工作(请在浏览器菜单中查找“首选项”)


3
“autocomplete”属性可以取多种不同的值,用来指示浏览器自动填充哪些内容。请参考https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete。 - ZachB

-9

属性autocomplete必须是"on"或"off"

<input autocomplete="on|off">

请参考此处


非常感谢 - 我真是太蠢了!最终我在输入字段周围添加了表单标签,尽管它不用作具有提交等功能的表单,但允许自动完成在选择名称时填充所有字段。 - Anders K
4
在输入级别上,最好使用自动完成提示而不是仅仅说“on”。<input type="text" name="fooBar" autocomplete="organization" > ^ 这还允许您拥有任何输入名称。以下是 HTML 表单输入的自动完成/自动填充标签的详尽列表: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete-name - catalint
1
这不是一个准确的答案。自动完成可以设置为“开启”或“关闭”,但它实际上旨在作为提示,建议浏览器提供值。例如,autocomplete="given-name" 或 autocomplete="address"。自动完成不用于设置这些值,这是由浏览器完成的。如果您想要预定义列表,请使用“list”属性。 - Mo'in Creemers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接