Html ng表单和自动完成=";关「;
我有一个像这样的角形Html ng表单和自动完成=";关「;,html,angularjs,Html,Angularjs,我有一个像这样的角形 <ng-form name="AddTaskForm" autocomplete="off"> ...... </ng-form> ...... 然而,当我开始输入数据时,chrome仍然会用以前输入的值提示我 如何防止chrome(和所有浏览器)在输入之前输入的值时显示任何下拉列表 我做了一些搜索,发现人们正在编写自定义指令,但不确定这是否真的是必需的 看起来Chrome忽略了单个输入的自动完成属性;以前的解决方法是像您所做的那样在整个
<ng-form name="AddTaskForm" autocomplete="off">
......
</ng-form>
......
然而,当我开始输入数据时,chrome仍然会用以前输入的值提示我
如何防止chrome(和所有浏览器)在输入之前输入的值时显示任何下拉列表
我做了一些搜索,发现人们正在编写自定义指令,但不确定这是否真的是必需的
看起来Chrome忽略了单个
输入的自动完成
属性
;以前的解决方法是像您所做的那样在整个表单上添加autocomplete=off
(这是一个非常不完整的解决方案,因为它会将此功能添加到表单中包含的所有输入中,这可能是不需要的)
无论如何,从它看来,变通办法不再可用,所以看起来您可能需要一个指令。我知道这可能不是你想要的,但我认为这是你chrome的唯一选择
myApp.directive('autocomplete', function() {
return {
restrict: 'A',
link: function( $scope, el, attr ) {
el.bind('change', function(e) {
e.preventDefault();
}
}
}
});
尽管
autocomplete
是一个很好的定义,但Chrome在如何使用autocomplete
属性方面却发生了翻天覆地的变化,然后他们决定开发人员一定是用错了,浏览器应该忽略它
这并不意味着不需要浏览器自动填充数据的情况并不十分有效(例如,在CRM系统上),但总的来说,我们将这些视为少数情况。因此,我们开始忽略Chrome自动填充数据的autocomplete=off
(来源:)
根据报告:
在冲突的情况下,考虑超过理论纯度的说明符上的作者多于执行者的用户。换句话说,用户的成本或困难应该比作者的成本更重要;反过来,对实施者来说,这应该比成本更重要
…这让我们的开发人员处于一个不幸的境地,无法找到工作。很好地概括了当前状态,并提供了将自动完成
设置为新密码
的解决方案:
如果作者希望防止用户管理页面中的密码字段自动填充,用户可以为自己以外的人指定新密码,则应指定autocomplete=“new password”,尽管尚未在所有浏览器中实现对此的支持
我不确定这将持续多久,但目前(2016年9月在Chrome 53上测试)这是最简单的解决方案:
<input type="password" name="someName" autocomplete="new-password" />
编辑:注意:这会产生要求用户保存密码的副作用,可能会覆盖现有密码。因此,虽然它确实“防止自动填充密码字段”,但它并没有完全从自动完成混乱中删除该元素
编辑:更新信息:新版Chrome再次尊重autocomplete=off
属性。他让它为Chrome68工作,为我为Chrome70工作。autocomplete=“off”
现在可以工作了。在当前的Chrome 70.0.3538.110中进行测试
.Hmm,您是否添加了
noautocomplete
或autocomplete
?它必须是指令的名称。谢谢你指出这一点。我使用的是ChromeVersion70forMac,这个解决方案很有效。@DavidKmenta:它在Windows10上与Chrome版本相同。此外,BrendanGoggin评论说它正在为Mac开发Chrome70。我非常怀疑周围发生了什么变化。请尝试在Chrome上测试您的web应用程序以获得胜利并ping回结果。@AlexanderAbakumov不幸的是,我不是唯一一个有此问题的人:。。。这背后似乎有一些未知的逻辑,只有Chrome团队知道@DavidKmenta:其中一个说:从最近的Chrome(肯定是70版)开始,autocomplete=“off”现在受到尊重,只要您的输入看起来不像用户配置文件,地址或信用卡数据。
我个人没有经历过autocomplete=“off”
无法工作的情况。如果您可以更改我的演示以演示其中一种情况,这将非常有帮助。autocomplete=“nope”在chrome中运行良好。请在此说明原因