Chrome 忽略自动完成='off'

Posted

技术标签:

【中文标题】Chrome 忽略自动完成=\'off\'【英文标题】:Chrome Ignoring autocomplete='off'Chrome 忽略自动完成='off' 【发布时间】:2015-05-21 11:27:10 【问题描述】:

我创建了一个网络 FROM,但 Chrome 自动完成功能将信息填充到了错误的位置。 Chrome (版本 41.0.2272.89(64 位))

尽管输入字段和表单字段都具有 autocomplete="off" 属性,但 Chrome 坚持显示该字段先前条目的下拉历史记录。

样本来自

<form accept-charset="UTF-8" action="/something" autocomplete="off" id="something_form" method="post">
<div style="margin:0;padding:0;display:inline">
  <input name="utf8" type="hidden" value="&#x2713;" />
  <input name="authenticity_token" type="hidden" value="xxxxxxxxxxxx" />
</div>
<div class="form-group no-padding col-xs-12 col-sm-12 col-md-12 col-lg-12">        
  <label class="control-label col-xs-4 col-md-4 col-sm-4 col-lg-4 no-padding text-right" for="from-course-name">
    Name:
  </label>
  <div class="controls col-xs-8 col-md-8 col-sm-8 col-lg-8 no-padding">
    <div class="input-append">
      <input id="from-name" inlineeditable-column="0" type="text" name="o_name" class="form-control custom-form_control required sensitive long "  autocomplete="off"  >
          </div>
        </div>
      </div>
</form>

【问题讨论】:

重复? ***.com/a/29582380/4462191 【参考方案1】:

在您想停止自动完成的输入字段上,这将起作用。使字段只读并在焦点上删除该属性,如下所示

<input readonly onfocus="this.removeAttribute('readonly');" onblur="this.setAttribute('readonly');"  id="from-name" type="text" name="o_name" class="form-control custom-form_control required ">

【讨论】:

【参考方案2】:

在 Chrome 中 autocomplete="off" 仅适用于 other then 密码、电子邮件、用户名、手机、邮政编码、城市...

如果字段的 nameid 类似于 id="blabla-password" 或 name"email-blabla" 或 id="bla-username-bla" 等...那么您必须使用以下内容

id="bla-bla-some-password" autocomplete="new-password"
id="bla-email-bla"         autocomplete="new-email"
id="some-username-id"      autocomplete="new-username" 
name="bla-password"        autocomplete="new-password"
name="bla-email-bla"       autocomplete="new-email"
name="some-username-id"    autocomplete="new-username"
...city                    autocomplete="nope"
...zipcode                 autocomplete="nope"
...mobile                  autocomplete="nope"
...

对于所有其他字段,请继续使用 autocomplete="off" ! 还是最好的结果

id="description" autocomplete="off"
id="date"        autocomplete="off"
id="some-text"   autocomplete="off"
...

等等

【讨论】:

【参考方案3】:

Chrome 已经忽略 autocomplete="off" 有一段时间了,您必须通过以下操作来欺骗 chrome:1. 将输入类型设置为文本,以及 2. 在触发焦点事件时重置输入类型

<input type="text" id="password" autocomplete="off" name="password">


$('#password').on('focus', function()
    $('#password').attr('type', 'password');
);

使用 Jquery 完成重置

【讨论】:

以上是关于Chrome 忽略自动完成='off'的主要内容,如果未能解决你的问题,请参考以下文章

文本框上的 Chrome 自动填充和自动完成问题

当输入类型为密码时,autocomplete ='off'不起作用,并在其上方输入输入字段以启用自动完成功能

停用Chrome建议的自动填充功能

禁用密码修改表单的自动完成

自动完成关闭 vs 错误?

使用 STRUTS 禁用自动完成(autocomplete="off")