自动完成关闭与错误?

问题描述 投票:40回答:6

最近我遇到了一个问题,我想在所有浏览器中禁用自动完成功能。

Chrome在设置中有一项新功能,您可以在其中添加卡号。并且要求也是禁用它。

在所有浏览器中有效的方法是在表单级别执行此autocomplete = false。

但这不符合w3规则,他们强制要求autocomplete = off | on。

有人可以向我解释为什么在所有浏览器中都有错误的作品?

甚至ie8,所有firefox,safari等。但是不符合要求。

html google-chrome autocomplete w3c
6个回答
20
投票

你是对的。将自动填充属性设置为“关闭”不会在较新版本的Chrome中禁用Chrome自动填充功能。

但是,您可以将自动填充设置为除“开”或“关”(“假”,“真”,“无填充”)以外的任何内容,它将禁用Chrome自动填充。

这种行为可能是因为autocomplete属性需要“on”或“off”值,并且如果你给它别的东西则不会做任何事情。因此,如果你给它的东西不是那些值,自动填充会崩溃/什么都不做。

使用当前版本的Chrome,已经发现将autocomplete属性设置为“off”实际上现在可以正常工作。

另外,我发现只有在表单的每个<input>标记中设置autocomplete属性时,这才有效。

在Chromium bug列表here中存在对这种模糊性的回应。

免责声明:Chrome版本47.0.2526.106(64位)中发现此情况属实


6
投票

Chrome版本72.XX之后:

Chrome在场和级别上都忽略了autocomplete="off" autocomplete="no-fill"autocomplete="randomText"

我找到的唯一选择是通过欺骗Chrome来填充虚拟文本框和密码上的自动填充,然后从用户视图中隐藏它们。

请记住,使用style="display: hidden"style="visibility: hidden"的旧方法也会被忽略。

固定:

因此,使用DIV创建一个height: 0px;overflow:hidden,它仍将呈现HTML元素,但将其隐藏在用户视图中。

示例代码:

<div style="overflow: none; height: 0px;background: transparent;" data-description="dummyPanel for Chrome auto-fill issue">
        <input type="text" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyUsername"></input>
        <input type="password" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyPassword"></input>
</div>

只需在HTML表单中添加上面的div,它应该可以工作!


4
投票
$("#selector").attr("autocomplete", "randomString");  

这对我来说每次都可靠。

注意:我在模态show事件中调用了这个LOC。


4
投票

使用autocomplete =“my-field-name”而不是autocomplete =“off”。要小心你所说的,因为有些值仍然被识别为autocomplete =“country”。我还发现使用占位符属性有助于一些棘手的场景。

示例:<input type="text" name="field1" autocomplete="my-field-name1" placeholder="Enter your name">

Chrome最近停止使用autocomplete =“off”,因为他们认为它被开发人员过度使用,他们没有充分考虑表单是否应该自动完成。因此,他们取出旧方法,并让我们使用一个新方法,以确保我们真的不希望它自动完成。


1
投票

autocomplete =“none”完全适用于angularjs和angular 7


0
投票

自动完成其他关闭和错误工作的价值。

autoComplete="nope" autoComplete="foo" autoComplete="boo" autoComplete="anythingGoesHere"

测试铬76并反应16.9.0


-4
投票

作为@camiblanch的补充回答

添加autocomplete="off" is not gonna cut it. 将输入类型属性更改为type="search"。 Google不会将自动填充应用于具有某种搜索类型的输入。

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