前两天一直改OA的代码,用户登陆问题的密码错误或者用户名错误让我很纠结,在一位同事的帮助下终于解决了
在form表单上加onsubmit时间进行Ajax异步
<form method="post" class="login-form" name="login" action="../login" onsubmit="return checkLogin()">
<input type="text" class="login-input user-account" placeholder="帐号" name="username" id="username"autocomplete="off" >
<input type="password" class="login-input user-password" placeholder="密码" name="password"id="password"/>
<input type="submit" class="fm-button-blue login-submit" value="登录" name="doLogin"/>
</form>
下面是Ajax代码
<script type="text/javascript" charset="utf-8">
function checkLogin(){
var username=$("#username").val();
var password=$("#password").val();
$.post('../login',{
username:username,
password:password
},function (resp) {
if(resp=="true"){
location.href="../";
}else if(resp=="nameFalse"){
alert("用户名错误!");
document.getElementById("username").value="";
document.getElementById("password").value="";
$("#username").focus();
}else if(resp=="passFalse"){
alert("密码不正确!");
document.getElementById("password").value="";
$("#password").focus();
}else{
$.post('../login',{
username:username,
password:password
},function (resp) {
if(resp=="true"){
location.href="../";
}else if(resp=="nameFalse"){
alert("用户名错误!");
document.getElementById("username").value="";
document.getElementById("password").value="";
$("#username").focus();
}else if(resp=="passFalse"){
alert("密码不正确!");
document.getElementById("password").value="";
$("#password").focus();
}else{
}
});
}
});
return false;
}
</script>
如果没有两次 $.post('../login),按钮要提交(点击)两次才会有效,原因是后台封装起来的代码把cookie的jessionid修改了,第一次提交的都会变得无效,需要在进行一次提交。