浏览器是否支持自动完成 ajax 加载的登录表单?
我的问题是,浏览器(IE&FF)的自动完成不适用于我的登录表单。
我有一个带有CakePHP和jQuery的web应用程序。允许访客不显眼地登录/注册。登录表单位于通过 AJAX 加载的 div 中。(这样就可以在不重新加载页面的情况下登录。
浏览器确实将其识别为登录字段,因为它们会在单击登录时提示我保存凭据。他们确实保存了用户名/密码,因为它们出现在浏览器设置中保存的用户名/密码之间。但是保存的用户名/密码永远不会自动输入。它们在页面加载时不会显示为预先输入的。当我开始输入用户名时,用户名显示为建议,但即使您选择它,也不会在其旁边输入密码。为什么?我怎样才能让它工作?
您可以自己测试,这是一个简单的AJAX登录表单:
http://gablog.eu/test/ajaxlogin.html
它加载以下登录表单,如果您转到下面的URL,autocomplete将仅适用于普通表单,因此这不是表单本身的问题,而是它是AJAX加载的:http://gablog.eu/test/loginform.html
布局:
<div id="user-bar">
<script type="text/javascript">
$(function() {
$("#user-bar").load('loginform.html').html();
});
</script>
</div>
加载的视图(未登录时):
<form id="form-login" action="" onsubmit="login(); return false;">
<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>
<input type="submit" value="Login"/>
<div id="login-error" class="error-message"></div>
</form>
<script type="text/javascript">
function login() {
$.post('/ajax/login', $("#form-login").serialize(), function(data) {
if (data.success) {
$("#user-bar").load('userbar.html').html();
} else {
$("#login-error").html(data.message);
}
}, "json");
}
</script>
澄清一下:我不想使用AJAX自动完成,我希望浏览器的自动完成适用于我的登录表单。这是我的表单和浏览器之间的问题。jQuery提交似乎起着次要作用,因为用户名/密码被保存。它们只是不是自动输入ajax加载的HTML元素!(测试站点不使用 jQuery 提交。相关问题:浏览器自动完成/保存的表单在ajax请求中不起作用