Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html ng表单和自动完成=";关「;_Html_Angularjs - Fatal编程技术网

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中运行良好。请在此说明原因