我的网站有一个基于ajax的登录表单,并注意到浏览器没有将其识别为登录表单,并且没有记住密码以便于用户登录。
按下提交按钮时,将值发送到服务器端进行检查并发回响应。如果检查通过,则设置会话并且页面执行javascript重定向到成员区域。 html非常简单,可能是导致问题的原因。
HTML:
<input type='text' class='email'>
<input type='password' class='password'>
<a class='submitBtn'>SUBMIT</a>
谢谢你们!
答案 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提交表单?