首页 文章

自动完成关闭与错误?

提问于
浏览
32

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

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

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

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

Can someone please explain to me why false works in all browsers?

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

5 回答

  • -3

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

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

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

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

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

    Chromium bug列表here对此歧义做出了回应 .

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

  • 4

    Chrome版本72.XX之后:

    Chrome会在字段和表单级别忽略 autocomplete="off" autocomplete="no-fill"autocomplete="randomText" .

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

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

    固定:

    因此,使用 height: 0px;overflow:hidden 创建一个 DIV ,它仍将呈现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,它应该可以工作!

  • 1
    $("#selector").attr("autocomplete", "randomString");
    

    这对我来说每次都可靠 .

    Note : I have invoked this LOC on modal show event.

  • 17

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

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

    Chrome最近停止使用autocomplete = "off",因为他们认为它没有被开发人员过度使用,因为他们没有希望它自动完成 .

  • 1

    作为@camiblanch的补充回答

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

相关问题