浏览器不会提示保存密码

时间:2012-02-03 18:40:41

标签: forms jquery browser submit

这是一个非常常见的问题,但我在其他人发帖中找到的解决方案要么与特定浏览器相关(主要是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>

4 个答案:

答案 0 :(得分:3)

这是浏览器行为,无法真正改变。 Firefox可能是&#34; smart&#34;足以提供保存密码而不提供实际提交的表单,但即使按钮执行不同的操作,表单中button的风险也会触发该选项。所以在我看来,对Firefox来说这是一件坏事(尽管它不应该提交表单,但我提出了很多问题。)

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

答案 1 :(得分:0)

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

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

和链接

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

这样就可以了。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

当你做一个AJAX帖子时,那么 -

  1. 删除<form>代码

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

  3. 取字段值&amp; AJAX发布按钮点击事件

  4. 它可能会成功。