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

时间:2015-09-25 15:45:47

标签: html input microsoft-edge

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

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

在Microsoft Edge中,只要按下向下箭头,就会在输入框中添加以下文本:

  

简要说明您的更改(更正拼写,修正语法,改进格式)

我可以做任何客户端来阻止这种情况发生吗?

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

为了演示这一点,运行上面的剪辑器,在文本框中键入内容并在Edge上按两次向下箭头。我希望这不会发生,因为它打破了我的自动完成!

由于

9 个答案:

答案 0 :(得分:25)

如果我理解正确,您就会遇到自动填充功能的问题。简单添加&#34;自动完成=&#39;关闭&#39;&#34;对你的输入应该禁用该功能。

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

答案 1 :(得分:5)

来自Mozilla: 您可以在实际表单标记<form autocomplete='off' ... >...</form>上设置自动填充,该标记适用于整个表单或单个<input type='text' />标记。

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

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

注意

大多数浏览器都忽略了登录字段。

答案 2 :(得分:5)

不幸的是,以上建议在我最近的Edge中都没有用。但是,此解决方案可以做到:

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

这迫使Edge查找不存在的名为autocompleteOff的数据查找列表。为我工作。

另一个优点是它是纯HTML,不需要CSS或JS。

答案 3 :(得分:3)

如果您想在使用autocomplete="off"时在chrome输入中删除自动完成功能,还必须删除id,如果您不删除输入中的id,那么自动完成功能将无效!

简单的例子:

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

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

答案 4 :(得分:1)

如果你需要app / site-wide,你可以使用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。

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

答案 5 :(得分:1)

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

如果要定义用户管理页面,用户可以在其中为其他人指定新密码,因此要防止自动填充密码字段,则可以使用autocomplete =“ new-password”

MDN reference

它也适用于非密码字段。

答案 6 :(得分:0)

只需0就可以完成您的输入!

答案 7 :(得分:0)

在边缘为我工作

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

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

答案 8 :(得分:0)

这适用于 Edge 和 Chrome(不是登录表单,不确定是否有区别)

<table>

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