我构建了一个文本框下拉 AngularJS 组件,它在 Chrome、Firefox、Safari 和 Internet Explorer 中运行良好。
此组件的一个功能是您输入字符串,然后可以使用向上/向下箭头键滚动浏览建议。
在 Microsoft Edge 中,一旦点击向下箭头,以下文本就会添加到输入框中:
简要解释您的更改(更正拼写、固定语法、改进格式)
我可以在客户端做些什么来阻止这种情况发生吗?
<form>
<input type="text" />
</form>
为了演示这一点,运行上面的截图,在文本框中输入一些内容,然后在 Edge 上点击向下箭头两次。我希望这种情况不要发生,因为它破坏了我的自动完成功能!
谢谢
如果我理解正确,您的自动完成功能有问题。只需在您的输入中添加“autocomplete='off'”即可禁用该功能。
<input type="text" autocomplete="off"/>
不幸的是,上述建议在最新的 Edge 中都不适合我。然而,这个解决方案确实:
<input type="text" autocomplete="off" list="autocompleteOff"
id="fieldId" name="fieldname" placeholder="Placeholder here" />
这会强制 Edge 查找名为
autocompleteOff
的数据查找列表,但该列表并不存在。对我来说是一种享受。
额外的优点是它是纯 HTML,不需要 CSS 或 JS。
2021年更新:
另一个对我来说非常有效的解决方案是将
readonly
属性添加到字段,然后在几毫秒的短暂延迟后使用 JQuery 删除标签。 readonly
属性会导致 Edge(和其他)忽略该字段。
对于在 Edge 105+ 上遇到自动填充忽略
autocomplete="off"
的任何人,您可以同时使用 aria-autocomplete="none"
,这将阻止自动填充显示(在 macOS 12.5 中测试,但应该适用于其他平台)
来自 Mozilla: 您可以在实际表单标签
<form autocomplete='off' ... >...</form>
上设置自动完成功能,该标签适用于整个表单,也可以在单个 <input type='text' />
标签上设置自动完成功能。
根据我在 IE 11 和 Edge 上的经验,将其放在表单上可以,但单个标签不起作用。我尝试在 Chrome 上进行测试,但这些字段已经无法自动完成。
请阅读完整的文章以获取更多详细信息。
注意
大多数浏览器在登录字段中忽略这一点。
如果您想在使用
autocomplete="off"
时在 chrome 中删除输入处的自动完成功能,您还必须删除 id,如果您不删除输入上的 id
,自动完成功能将不起作用!
简单的例子:
<input type="text" autocomplete="off" list="autocompleteOff"
name="fieldname" placeholder="Placeholder here" />
您可以使用名称处理您的输入;),这对我来说很好。
<input type="text" autocomplete="new-password" />
如果您正在定义一个用户管理页面,其中用户可以为另一个人指定新密码,因此您希望防止自动填充密码字段,则可以使用 autocomplete="new-password"
它也适用于非密码字段。
如果您在应用程序/站点范围内需要它,您可以使用jquery:
$('input').attr('autocomplete','off');
或者如果你像我一样使用 Angular+ui-router 你可以尝试以下操作:
在您的
index.html
中添加以下脚本:
<script type="text/javascript">
setTimeout(function() {
$('input').attr('autocomplete', 'off');
}, 2000);
</script>
然后要覆盖状态更改,请将以下内容添加到根控制器:
$rootScope.$on('$stateChangeStart', function() {
$timeout(function () {
$('input').attr('autocomplete', 'off');
}, 2000);
});
超时用于在应用 jquery 之前渲染 html。
如果您找到更好的解决方案,请告诉我。
这适用于 Edge 和 Chrome(虽然不是登录表单,不确定这是否有影响)
autocomplete="somerandomstring"
https://gist.github.com/niksumeiko/360164708c3b326bd1c8#gistcomment-2367048
只需
autocomplete="off" list="autocompleteOff"
输入并完成工作!
autocomplete="off" 从昨天开始就不起作用了(边缘 105.0.1343.25)。 对我来说看起来像一个错误。希望他们能尽快修复它。
在表单字段中,尝试 autocomplete="-"
尝试使用
<textarea>
,我认为你唯一不能做的就是让它type="password"
隐藏文本,否则它似乎完全停止自动完成。
in Edge 为我工作
`autocomplete="false" readonly onfocus="this.removeAttribute('readonly');" /