jquery – 如何使Chrome记住AJAX表单的密码?

前端之家收集整理的这篇文章主要介绍了jquery – 如何使Chrome记住AJAX表单的密码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用AJAX在我的登录页面上进行快速输入验证。如果一切正确,用户将被重定向

这里是代码

$(form).submit(function () {
    $.post($(this).attr('action'),$(this).serialize(),function (data) {
        if (data.status == 'SUCCESS') {
            window.location = data.redirectUrl;
        }
   }
...

它在所有浏览器中工作得很好。但Chrome中有一个问题。它不提供保存密码。

当JavaScript关闭时,密码被保存,所以问题肯定是重定向到一个新的位置。

如何解决这个问题?

解决方法

我发现了一个脏的解决方法为这个问题,通过插入一个不可见的iframe和目标表单到它:
<iframe src="/blank.html" id="loginTarget" name="loginTarget" style="display:none">
</iframe>

<form id="loginForm" action="/blank.html" method="post" target="loginTarget"></form>

相应的JavaScript:

$('#loginForm').submit(function () {
    $.post('/login',function (data) {
        if (data.status == 'SUCCESS') {
            window.location = data.redirectUrl;
        }
    })
})

诀窍是,真的有两个请求。首先,表单提交到/blank.html,这将被服务器忽略,但这会触发Chrome中的密码保存对话框。此外,我们做一个ajax请求,并提交真实的形式/ login。由于第一个请求的目标是一个不可见的iframe页面不刷新。

如果您不想重定向到另一个页面,这当然更有用。如果你想重定向无论如何改变action属性是一个更好的解决方案。

编辑:

这里是一个简单的JSFiddle版本的它。与注释部分的声明相反,没有重新加载所需的页面,它似乎工作非常可靠。我在Win XP的Chrome和Linux的Chromium测试了。

猜你在找的jQuery相关文章