【问题标题】:Browser won't prompt to save password浏览器不会提示保存密码
【发布时间】:2025-11-27 03:45:02
【问题描述】:

这是一个很常见的问题,但我在其他人的帖子中找到的解决方案要么与特定浏览器(主要是 firefox)有关,要么与名称的错误使用有关(name="U12-678132-34")

我的问题与 Firefox 以外的浏览器有关(Firefox 所有方法都可以)。

我使用的表单是非常标准的 HTML 表单,但它的提交是使用 javascript (jQuery AJAX) 完成的。

Firefox 会以各种方式要求记住密码(如果是新用户)并在您再次登陆同一页面时重新填写表单。但是当涉及到 Chrome/Safari/IE8-9 时,如果表单是使用 javascript 提交的,他们永远不会要求保存密码。 (顺便说一下,我确实检查了浏览器是否没有打开 - 永远记住密码)

我的提交发生在您单击表单内的链接时,或者如果您只是单击键盘上的“ENTER”按钮,然后它会启动 $.submit() 方法。

是否有特定的提交需要发生的方式,以便浏览器会像 firefox 那样请求保存密码?或者有没有办法至少告诉 Chrome/IE 等特定浏览器强制执行这种类型的请求?

表格示例:

<form class="loginform" method="post" action="">
    <div class="inputfield">
        <input name="email" type="text" class="emailaddress inputclass" value="" title="Email Address" />
    </div>      
    <div class="inputfield">
        <input name="password" type="password" class="password inputclass" title="Password" value="" />
    </div>              
    <div class="submit">
        <a href="javascript:void(0);" class="signinbutton"></a>
        <div class="checking">
            <img src="/preloaders/login-preloader.png"/>
        </div>
        <input type="submit" name="submit" value="submit" style="display:none"/>
    </div>
</form>

【问题讨论】:

  • 我们添加了验证以确认不准确的登录尝试或多次登录尝试和密码重置。我知道让这个表单在没有 javascript 的情况下提交会解决这个问题,但我们会牺牲美观,这不是这个项目的选择。

标签: forms jquery browser submit


【解决方案1】:

这是浏览器行为,无法真正更改。 Firefox 可能足够“聪明”,可以在没有实际提交表单的情况下提供保存密码,但即使按钮执行不同的操作,表单中包含 buttons 的风险也会触发该选项。所以在我看来,这对 Firefox 来说是一件坏事(我在 Firefox 提交表单时遇到了很多问题,尽管它不应该这样做)。

如果您确实希望显示保存密码选项,请使用 iframe 并提交到 iframe,而不是使用 AJAX。然后,您可以使用 iframe 中的 AJAX 来保持旧的行为。

【讨论】:

  • 嗯很有趣..我会尝试到目前为止最好的建议:)
  • 似乎提交到 iframe 不再适用于最近的浏览器。我还没有找到其他方法。 dev.vaadin.com/ticket/8405
【解决方案2】:

将点击事件附加到您的提交按钮

$('#id_of_submit').click(function() {
   /your ajax logic
   return false;
});

在链接上

$('#id_of_your_link').click(function() {
   $('#id_of_submit').click();
});

这样就可以了。

【讨论】:

  • 这会让浏览器记住用户名和密码?真的吗?
  • 当表单上的提交按钮被按下并且Firefox将表单元素识别为密码和用户名时,它将提供保存它。我有带有漂亮链接和隐藏提交按钮的表单。
  • 我的表单可以同时使用 .click 和 .submit 以及在 Firefox 上,就像我在上面的问题中所说的那样工作正常,但它不会在其他浏览器上工作
【解决方案3】:

查看此处接受的答案 - How can I get browser to prompt to save password? - 似乎有效的操作可能会有所帮助。

但我建议将其归结为浏览器行为,并且不能由 HTML 和/或 JavaScript 控制。如果您想记住输入的值,请使用 Cookie

【讨论】:

    【解决方案4】:

    当你在做 AJAX 帖子时,那么-

    1. 删除&lt;form&gt;标签

    2. 用按钮代替&lt;input type="submit"

    3. 获取字段值和 AJAX 发布按钮点击事件

    它可能会成功。

    【讨论】:

    • 试过了,结果还是一样
    【解决方案5】:

    其中一个原因是网站应该有一个有效的证书。如果不是安全站点,登录后不会出现密码保存提示。

    【讨论】: