ASP.NET部分回发上的Chrome自动填充(更新面板)

问题描述 投票:0回答:3

我知道围绕自动填充和自动填充的Web浏览器有很多问题和答案。我没有看到这个具体问题。

更新:自动填充特别是在更新面板内执行部分回发时

最近,(Chrome版本70+?),当执行部分回发时,Chrome已经开始在我们的webapp中自动填充输入字段。 (我们使用asp.net网络表单)

我们使用部分回发来动态加载用户控件并将其添加到更新面板内的DOM中。

具体来说,像以下简单代码段的输入正在填充电子邮件:

<input type="search" class="newH4" placeholder="Search">

我尝试使用不同的值添加自动完成属性无济于事。

以下是自动填充的屏幕截图:

enter image description here

此外,我还有其他字段,例如输入美元金额,也可以填充电子邮件。有没有办法在最新版本的Chrome上阻止这种情况?

javascript html asp.net google-chrome autofill
3个回答
1
投票

如果表单中有密码字段,则可以添加此属性 - autocomplete="new-password"

<input type="password" placeholder="Password" autocomplete="new-password">


0
投票

autocomplete="off"应该工作,但代替工作,并且鉴于它不是密码或电子邮件,你可以给它一些随机字符串,看看是否有帮助

例如autocomplete="rjftgh"


0
投票

注意:只需将autocomplete属性更改为随机字符串,或者甚至是像“new-password”这样的特殊字符串,都不适用于此问题。

最终我找到了解决方案。它更像是一个黑客,所以我对它不太满意,但它来自Mike Nelson对以下问题的回答:Disabling Chrome Autofill

他的解决方案涉及添加输入元素,其显示属性设置为自动填充的输入上方的“无”。这个想法是这些隐藏的领域吸收了自动填充。

我也学到了更多关于ASP.NET和更新面板的问题。当更新面板触发部分回发时,它使用AJAX库。库与服务器联系以完成更新。无论AJAX在后台做什么,它还会触发chrome的自动填充逻辑来重新执行。换句话说,每当我动态添加用户控件时,该用户控件的html结构中的第一个输入字段就会被用户存储的电子邮件自动填充。

同样,非常奇怪和不好的行为,但显示'无'输入字段做了伎俩。

如果Chrome再次更改了自动填充逻辑(他们会),我会更新我的答案,希望是更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.