我已经构建了一个文本框下拉列表AngularJS组件,该组件在Chrome,Firefox,Safari和Internet Explorer中运行良好。
此组件的一个功能是您键入一个字符串,然后可以使用向上/向下箭头键滚动查看建议。
在Microsoft Edge中,只要按下向下箭头,就会在输入框中添加以下文本:
简要说明您的更改(更正拼写,修正语法,改进格式)
我可以做任何客户端来阻止这种情况发生吗?
<form>
<input type="text" />
</form>
为了演示这一点,运行上面的剪辑器,在文本框中键入内容并在Edge上按两次向下箭头。我希望这不会发生,因为它打破了我的自动完成!
由于
答案 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”
它也适用于非密码字段。
答案 6 :(得分:0)
只需0
就可以完成您的输入!
答案 7 :(得分:0)
在边缘为我工作
`autocomplete="false" readonly onfocus="this.removeAttribute('readonly');" /
答案 8 :(得分:0)
这适用于 Edge 和 Chrome(不是登录表单,不确定是否有区别)
<table>
https://gist.github.com/niksumeiko/360164708c3b326bd1c8#gistcomment-2367048