当输入类型为密码时,autocomplete ='off' 不起作用,并在其上方设置输入字段以启用自动完成

新手上路,请多包涵

我有一个禁用了自动完成功能的表单,但它不起作用并使自动完成功能在 firefox 和更高版本的 chrome 中启用

<form method="post" autocomplete="off" action="">
    <ul class="field-set">
    <li>
        <label>Username:</label>
        <input type="text" name="acct" id="username" maxlength="100" size="20">
    </li>
    <li>
        <label>Password:</label>
        <input type="password" name="pswd" id="password" maxlength="16" size="20" >
    </li>
    <li>
        <input type="submit" class="button" value="Login" id="Login" name="Login">
    </li>
    </ul>
</form>

当类型从密码更改为文本时,它适用于所有浏览器。任何人都可以帮助解决这个问题吗?

原文由 user2594463 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 567
2 个回答

浏览器通常有两个有关表单的相关但不同的功能:

  • 表单自动完成,其中 <input type="text"> 类型(和类似)的项目收集类型值并以下拉列表的形式提供它们。

(这是一个非常有效的简单功能。)

  • 密码管理器,浏览器在检测到您提交了登录表单时会提示记住用户名/密码组合。返回站点时,大多数浏览器会在下拉框中显示可用的用户名(Firefox、Chrome、Internet Explorer…),但有些浏览器具有工具栏按钮 (Opera)。此外,Chrome 会以硬编码的黄色突出显示这些字段。

(这取决于启发式方法,可能会在某些页面上失败。)

有一个边缘案例,其形式标记为 autocomplete="off" 。如果它是一个登录表单并且用户之前已经存储了用户名/密码会怎样?实际上从本地数据库中 删除 密码看起来不合适,所以可能没有浏览器这样做。 (事实上 ,表单自动完成的数据也不会被删除。) Firefox 决定赋予用户权力:你有密码,所以我会让你使用它。 Chrome 决定为网站提供权力。

原文由 Álvaro González 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在加载表单时将字段设置为只读。当该字段获得焦点时,您可以将该字段更改为可编辑。这是避免自动完成的最简单方法。

 <input name="password" id="password" type="password" autocomplete="false" readonly onfocus="this.removeAttribute('readonly');" />

原文由 sujivasagam 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题