这是一个非常常见的问题,但我在其他人发帖中找到的解决方案要么与特定浏览器相关(主要是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>
答案 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帖子时,那么 -
删除<form>
代码
而不是<input type="submit"
,请使用按钮
取字段值&amp; AJAX发布按钮点击事件
它可能会成功。