Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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/9/visual-studio/7.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
Asp.net 自动完成=";关「;不为谷歌浏览器工作_Asp.net_Visual Studio_Autocomplete - Fatal编程技术网

Asp.net 自动完成=";关「;不为谷歌浏览器工作

Asp.net 自动完成=";关「;不为谷歌浏览器工作,asp.net,visual-studio,autocomplete,Asp.net,Visual Studio,Autocomplete,这个问题在过去曾被问过好几次,但不幸的是,我无法禁用Google Chrome的自动填充功能(v.36.0.1985.125 m) 我已经试过了 迄今为止已测试的代码 <form autocomplete="off"> <asp:textbox autocomplete="off"> AutoCompleteType="Disabled" AutoCompleteType=“已禁用” 但我仍然在我的登录页面上获得自动归档的数据。即使文本框ID发生更改,也会

这个问题在过去曾被问过好几次,但不幸的是,我无法禁用Google Chrome的自动填充功能(v.36.0.1985.125 m)

我已经试过了

迄今为止已测试的代码

<form autocomplete="off">

<asp:textbox autocomplete="off">

AutoCompleteType="Disabled"

AutoCompleteType=“已禁用”

但我仍然在我的登录页面上获得自动归档的数据。即使文本框ID发生更改,也会填充密码

谷歌Chrome的最新版本正在强制自动填充,而不管
自动完成=off
您将需要一点技巧。以前的一些黑客不再有效(34+版本)

我已经在Google Chrome v36上测试了以下代码。

它从元素中删除“name”和“id”属性,并在1ms后重新分配它们。这对我来说非常有效

将此代码放入文档就绪状态

 $(document).ready(function () {

$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function () {

                var input = this;
                var name = $(input).attr('name');
                var id = $(input).attr('id');

                $(input).removeAttr('name');
                $(input).removeAttr('id');

                setTimeout(function () {
                    $(input).attr('name', name);
                    $(input).attr('id', id);
                }, 1);
            });
         });;

此只读修复程序适用于我:

修复浏览器自动填充:只读并设置焦点上的写功能(鼠标单击并在字段间切换)


顺便提一下,关于Chrome和Safari自动填充行为的更多信息:


有时,即使autocomplete=off也不能阻止将凭据填写到错误的字段中,但不能阻止用户或昵称字段。我猜Chrome和Safari会寻找一个密码字段来插入您保存的凭据。然后它自动将用户名填充到最近的类似文本的输入字段中,该字段出现在DOM中密码字段的前面(只是由于观察而猜测)。因为浏览器是最后一个实例,您无法直接控制它,但上面的只读技巧可以修复它。:-)

我想我会用2016年的帖子来更新这篇文章。我使用了这两种解决方案的组合,以及。这是为我工作的时间,这篇文章

不幸的是,Sangram的解决方案在后来的Chrome版本中不再适用于我,而是使用了dsuess的方法,将字段标记为只读,但在视觉上并不吸引人(因为在你真正关注元素之前,这些字段一直是只读的,这不是最直观的方法,但不管是什么方法,对吧?)仍然有效

通过将两者结合起来,我们不再要求用户关注现场。以下是我的网页代码:

<asp:TextBox ID="TeamName" runat="server" TextMode="SingleLine" AutoCompleteType="Disabled" ReadOnly="true"></asp:TextBox>

由于我也遇到了同样的问题,而且随着浏览器最近的更新,所有的“替代品”似乎都停止工作了,所以我遇到了一个“肮脏”的解决方案,完全把我难住了

如果我们打开每个要禁用自动完成功能的字段,并将其自动完成属性设置为无效值(只有“关闭”和“打开”有效),浏览器将因此停止尝试自动填充这些字段

惊讶?我也是

例如:

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


很明显,它是有效的。愚蠢,我知道,但它是一个“肮脏”的控件,目前实际上有效。

我的建议更改控件的名称。例如,我有一个名为txtFirsName的控件,它总是向我显示自动完成建议,我通过txtFN进行了更改并准备就绪

听着,解决这个问题的唯一办法就是向铬开发者请愿。进入他们的论坛,告诉他们这有多痛苦。每一个变通方法最终都会被它们破坏

现在,在控件上有一个唯一的ID可以修复它


我的建议是使用用户的会话ID作为页面上控件ID的一部分。这一点目前正在全面实施。但它不会永远存在。

将密码字段的类型设置为“文本”,并在单击时将其更改为“密码”

HTML:


对于Asp.Net文本框,添加TextMode=“Search”和AutoCompleteType=“Disabled”对我很有效

<asp:TextBox runat="server" ID="txtAddress" CssClass="form-control" TextMode="Search" AutoCompleteType="Disabled"></asp:TextBox>


我在Edge(版本89.0.774.48)和Chrome(版本88.0.4324.190)中测试了这一点。

是否可能重复?可能重复的Chrome版本69.0.3497.100(官方版本)(64位)对我来说不起作用。这对我来说起了作用,停止了Chrome上的自动填充,而我发现其他版本都不起作用。谢谢请参阅第164条评论,以了解为什么这样做有效(以及为什么谷歌再次采取令人恼火的“我们比你知道得多”的立场……感觉像是IE时代,不是吗?)
<input type="text" autocomplete="stopdoingthat" />
<input autocomplete="off" id='username'>
<input autocomplete="off" id='password' type="text" onclick="changeType('password')">
changeType(id) {
    document.getElementById(id).setAttribute('type', 'password');
}
<asp:TextBox runat="server" ID="txtAddress" CssClass="form-control" TextMode="Search" AutoCompleteType="Disabled"></asp:TextBox>