浏览器无法提示保存密码

3

这是一个非常普遍的问题,但我在其他人的帖子中找到的解决方案要么与特定浏览器(主要是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 来提交该表单,可以解决这个问题,但我们将牺牲美观度,而这在这个项目中是不可选的。 - Alex
5个回答

3
这是浏览器的行为,不能真正改变。Firefox可能足够“聪明”,可以在表单实际上没有提交时提供保存密码的选项,但这会冒着使表单中的

嗯,有趣...我会试试,目前为止是最好的建议 :) - Alex
1
最近的浏览器似乎不再支持将内容提交到iframe中。我还没有找到其他的方法。http://dev.vaadin.com/ticket/8405 - Oliv

0
给你的提交按钮添加点击事件
$('#id_of_submit').click(function() {
   /your ajax logic
   return false;
});

并且在链接上

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

这样就可以了。


这会让浏览器记住用户名和密码吗?真的吗? - Manse
当提交按钮在表单上被按下,且Firefox将表单元素识别为密码和用户名时,它会提示是否保存。我有包含漂亮链接和隐藏提交按钮的表单。 - Senad Meškin
我的表单可以同时使用 .click 和 .submit,在 Firefox 上就像我在上面的问题中说的那样工作得很好,但在其他浏览器上却无法正常工作。 - Alex

0

其中一个原因是网站必须拥有有效的证书。如果它不是安全的网站,在登录后密码保存提示将不会出现。


0

看看这里接受的答案-如何让浏览器提示保存密码?-似乎一个有效的操作可能会有帮助。

但是我建议这取决于浏览器的行为,不能由HTML和/或JavaScript控制。如果你想记住输入的值,请使用Cookie。


0

由于您正在进行AJAX提交,那么-

  1. 删除<form>标签

  2. 使用按钮而不是<input type="submit"

  3. 在按钮点击事件中获取字段值并进行AJAX提交

这样可能会起作用。


尝试了这个,但结果仍然相同。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接