【问题标题】:autocomplete not working on Chrome [closed]自动完成无法在 Chrome 上运行 [关闭]
【发布时间】:2021-08-05 06:45:49
【问题描述】:

我在我们的网站上遇到问题,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 下拉菜单中选择我的姓名时,没有任何反应,但下拉菜单关闭。

控制台中没有记录异常。

包含字段的页面是here

【问题讨论】:

    标签: html google-chrome autocomplete


    【解决方案1】:

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

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

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

    开始记住之前提交的值。

    【讨论】:

      【解决方案2】:

      尝试更改输入的名称,使用“地址”的“位置”之类的内容,如果您想保留“地址”之类的占位符,您可以在列表中使用西里尔字母作为第一个字母,这应该可以防止自动填充:)希望对你有帮助

      【讨论】:

        【解决方案3】:

        我创建了一种使其工作的方法,只需设置所有输入 (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);
            }
        }
        

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

        【讨论】:

          【解决方案4】:

          尝试这样的事情。在您的表单标签中添加以下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>
          

          【讨论】:

            【解决方案5】:

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

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

            现在从自动完成中选择一个选项实际上会填充该字段。

            【讨论】:

              【解决方案6】:

              我认为 autocomplete="name" 是一个真假属性, 所以你可能会寻找其他属性?或者一个js函数

              【讨论】:

                【解决方案7】:

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

                至于您的代码,建议将autocomplete="on" 保持在&lt;form&gt; 级别。但是,如果您只想为名称输入字段保留此功能,则代码应为:

                <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:

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

                【讨论】:

                【解决方案8】:

                属性自动完成必须是“开”或“关”

                <input autocomplete="on|off">
                

                参考here

                【讨论】:

                • 非常感谢 - 愚蠢的我!我最终在输入字段周围添加了表单标签,即使它没有用作带有提交等的表单,以允许在选择名称时自动完成填写所有字段。
                • 最好使用自动完成提示,而不是只在输入级别说“on” ^ 这也允许您有任何输入你想要的名字。以下是 html 表单输入的自动完成/自动填充标签的详尽列表:html.spec.whatwg.org/multipage/…
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2022-08-06
                • 2017-04-20
                • 2019-12-13
                • 2021-05-28
                • 1970-01-01
                • 2020-01-29
                • 1970-01-01
                相关资源
                最近更新 更多