在 Edge 中禁用输入文本建议?

问题描述 投票:0回答:13

我构建了一个文本框下拉 AngularJS 组件,它在 Chrome、Firefox、Safari 和 Internet Explorer 中运行良好。

此组件的一个功能是您输入字符串,然后可以使用向上/向下箭头键滚动浏览建议。

在 Microsoft Edge 中,一旦点击向下箭头,以下文本就会添加到输入框中:

简要解释您的更改(更正拼写、固定语法、改进格式)

我可以在客户端做些什么来阻止这种情况发生吗?

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

为了演示这一点,运行上面的截图,在文本框中输入一些内容,然后在 Edge 上点击向下箭头两次。我希望这种情况不要发生,因为它破坏了我的自动完成功能!

谢谢

html input microsoft-edge
13个回答
32
投票

如果我理解正确,您的自动完成功能有问题。只需在您的输入中添加“autocomplete='off'”即可禁用该功能。

<input type="text" autocomplete="off"/>

26
投票

不幸的是,上述建议在最新的 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(和其他)忽略该字段。


24
投票

对于在 Edge 105+ 上遇到自动填充忽略

autocomplete="off"
的任何人,您可以同时使用
aria-autocomplete="none"
,这将阻止自动填充显示(在 macOS 12.5 中测试,但应该适用于其他平台)


8
投票

来自 Mozilla: 您可以在实际表单标签

<form autocomplete='off' ... >...</form>
上设置自动完成功能,该标签适用于整个表单,也可以在单个
<input type='text' />
标签上设置自动完成功能。

根据我在 IE 11 和 Edge 上的经验,将其放在表单上可以,但单个标签不起作用。我尝试在 Chrome 上进行测试,但这些字段已经无法自动完成。

请阅读完整的文章以获取更多详细信息。

注意

大多数浏览器在登录字段中忽略这一点。


4
投票

如果您想在使用

autocomplete="off"
时在 chrome 中删除输入处的自动完成功能,您还必须删除 id,如果您不删除输入上的
id
,自动完成功能将不起作用!

简单的例子:

<input type="text" autocomplete="off" list="autocompleteOff" 
     name="fieldname" placeholder="Placeholder here" />

您可以使用名称处理您的输入;),这对我来说很好。


3
投票
<input type="text" autocomplete="new-password" />

如果您正在定义一个用户管理页面,其中用户可以为另一个人指定新密码,因此您希望防止自动填充密码字段,则可以使用 autocomplete="new-password"

MDN参考

它也适用于非密码字段。


2
投票

如果您在应用程序/站点范围内需要它,您可以使用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。

如果您找到更好的解决方案,请告诉我。


2
投票

这适用于 Edge 和 Chrome(虽然不是登录表单,不确定这是否有影响)

autocomplete="somerandomstring"

https://gist.github.com/niksumeiko/360164708c3b326bd1c8#gistcomment-2367048


1
投票

只需

autocomplete="off" list="autocompleteOff"
输入并完成工作!


1
投票

autocomplete="off" 从昨天开始就不起作用了(边缘 105.0.1343.25)。 对我来说看起来像一个错误。希望他们能尽快修复它。


0
投票

在表单字段中,尝试 autocomplete="-"


0
投票

尝试使用

<textarea>
,我认为你唯一不能做的就是让它
type="password"
隐藏文本,否则它似乎完全停止自动完成。


-2
投票

in Edge 为我工作

`autocomplete="false" readonly onfocus="this.removeAttribute('readonly');" /

`根据这个https://stackoverflow.com/a/30344707/14913109

© www.soinside.com 2019 - 2024. All rights reserved.