代码之家  ›  专栏  ›  技术社区  ›  Christian Oudard

如何禁止firefox密码字段完成?

  •  15
  • Christian Oudard  · 技术社区  · 16 年前

    我正在开发一个网站。我使用的是单页Web应用程序样式,因此网站的所有不同部分都是Ajax'd into index.php。当用户登录并告诉火狐记住他的用户名和密码时,网站上的所有输入框都会自动填充该用户名和密码。更改密码的表单出现问题。如何阻止火狐自动填写这些字段?我已经给他们取了不同的名字和身份证。

    编辑: Someone has already asked this . 谢谢乔尔·库霍恩。

    5 回复  |  直到 5 年前
        1
  •  27
  •   Ryan Lanciaux    16 年前

    来自Mozilla的文档

    <form name="form1" id="form1" method="post" autocomplete="off"
      action="http://www.example.com/form.cgi">
    [...]
    </form>
    

    http://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion

        2
  •  7
  •   jayarnielsen    9 年前

    这个 autocomplete="off" 方法不适用于我。我意识到火狐是在它遇到的第一个密码字段中注入保存的密码,所以对我有效的解决方案是在密码更新字段之前创建一个虚拟的密码字段并隐藏它。像这样:

    <input type="password" style="display: none;" />
    <input type="password" name="password_update" />
    
        3
  •  2
  •   Rob Rolnick    16 年前

    是否尝试在输入标记中添加autocomplete=“off”属性?不确定它是否有效,但值得一试。

        4
  •  0
  •   George Mauer    16 年前

    所有输入框是否都设置为type=password?那就行了。你可以做的一件事,我一点也不确定这是最好的答案,就是将输入框保留为输入类型,只使用javascript和onkeydown事件在输入框中放置星号,而不是让浏览器呈现它。火狐不会预先填充。

    作为旁白,我不得不在单页网络应用上工作,我绝对讨厌它。为什么要剥夺用户的书签功能?使用后退按钮?

        5
  •  0
  •   Jakub Fojtik    5 年前

    添加到此答案 https://stackoverflow.com/a/30897967/1333247

    在这种情况下,您还可以在密码字段前面有一个用户字段,并希望对其禁用自动完成功能(例如,路由器Web配置、设置代理用户和密码)。

    只需在“虚拟密码”字段前面创建一个虚拟用户字段以隐藏用户名自动完成:

    <input type="text" style="display: none;" />
    <input type="password" style="display: none;" />
    <input type="password" name="password_update" />
    

    每个 docs 这是关于登录自动完成的。要禁用正常搜索(例如搜索词完成),只需使用

    autocomplete="off"
    

    窗体或输入的属性。要同时禁用这两种功能,您需要同时禁用这两种功能,因为该属性不会禁用登录自动完成功能。