使用浏览器密码记住功能的Ajax登录表单

时间:2011-06-30 09:32:51

标签: javascript ajax login passwords

我的网站有一个基于ajax的登录表单,并注意到浏览器没有将其识别为登录表单,并且没有记住密码以便于用户登录。

按下提交按钮时,将值发送到服务器端进行检查并发回响应。如果检查通过,则设置会话并且页面执行javascript重定向到成员区域。 html非常简单,可能是导致问题的原因。

HTML:

<input type='text' class='email'>
<input type='password' class='password'>
<a class='submitBtn'>SUBMIT</a>

谢谢你们!

2 个答案:

答案 0 :(得分:2)

我想我会用另一种方式来做。

使用表单提交到隐藏的iframe,因此窗口将像ajax文章一样(不刷新窗口),密码记住功能将起作用

    <form method="post" id="" action="checkDetail.php" target="myIframe">

        <input type='text' class='email'>
        <input type='password' class='password'>
        <input type="submit" name="" value="" id="Submit"/>
    </form>
    <iframe name="myIframe" id="myIframe"></iframe>

通过这种方式,您必须更改一些响应代码,以通知iframe提交结果。

<强>更新

它将由浏览器自动完成。如果表单指定了'target'属性,并且iframe的name属性与表单的target属性完全相同,则表单操作将提交给iframe。

因此,当您的请求成功时,您的回复就会显示在iframe内容中。在回复中尝试这样的代码。

<?php
//php checks database here
?>

<script>
    parent.formSuccess({
        //your response infomation
    });
</script>

并在外部页面中定义 formSuccess 方法来处理提交回调

答案 1 :(得分:0)

在堆栈上找到答案:How can I get browser to prompt to save password?

我的版本:

<form id='loginForm' target="passwordIframe" method='POST' action="blank.php">
<input name='email' type='text' st='Email'>
<input name='pass' type='password' st='Password'>
<button type='submit'>LOGIN</button>    
</form>
<iframe id="passwordIframe" name="passwordIframe" style='display:none'></iframe>

我可以确认这会触发Chrome的密码记忆功能(尚未测试的其他浏览器)。 操作属性指向blank.php非常重要。我选择了一个空白的php页面并回显了$_POST数组,以确保通过表单提交值。

我现在将使用我的旧代码实现此功能,该代码只使用javascript将值拉出字段并通过ajax调用检查它们。我想知道我是否可以一起取消提交按钮,只需使用javascript提交表单?