function goto()
{
if(document.form1.uname.value=="" || document.form1.pass.value=="")
{
alert("请输入用户名和密码");
return false;
}
var winop=false;
$.post("include/login.php", {
uname: $("input[name='uname']").val(),
pass: $("input[name='pass']").val()
}, function(res){ if(res == "user_error") {
winop=true;
alert("用户名错误");
}else if(res == "pass_error"){
winop=true;
alert("密码错误");
} })
//alert(winop);//为什么把这个不注掉就可以,一注掉这个,最下边那个else里的就无论结果真假都要弹出呢
if(winop==true)
{
return false;
}else{
alert('oook');
}
//document.location.reload();
}
{
if(document.form1.uname.value=="" || document.form1.pass.value=="")
{
alert("请输入用户名和密码");
return false;
}
var winop=false;
$.post("include/login.php", {
uname: $("input[name='uname']").val(),
pass: $("input[name='pass']").val()
}, function(res){ if(res == "user_error") {
winop=true;
alert("用户名错误");
}else if(res == "pass_error"){
winop=true;
alert("密码错误");
} })
//alert(winop);//为什么把这个不注掉就可以,一注掉这个,最下边那个else里的就无论结果真假都要弹出呢
if(winop==true)
{
return false;
}else{
alert('oook');
}
//document.location.reload();
}
按楼主的写法,先是发送了一个post请求,
if(winop==true) 到这一步的时候,post请求还没能request,即winop没改变值
而alert阻止了进程,相当于等待post请求的返回结果,终止了alert之后的程序。楼主可以在success回调函数里操作,或者 使用ajax函数,将async设置为false。