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="✓" />
<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 密码、电子邮件、用户名、手机、邮政编码、城市...
如果字段的 name 或 id 类似于 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'的主要内容,如果未能解决你的问题,请参考以下文章