jquery 和javascript一起用的困惑

wuszh1688 2012-11-10 09:14:05
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();
}
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 calmcrime 的回复:
ajax 是异步的, 按楼主的写法,先是发送了一个post请求, if(winop==true) 到这一步的时候,post请求还没能request,即winop没改变值 而alert阻止了进程,相当于等待post请求的返回结果,终止了alert之后的程序。 楼主可以在success回调函数里操作,或者 使用ajax函数,将async设置为false。 ……
+1 要不你设置同步吧。
泡泡鱼_ 2012-11-10
  • 打赏
  • 举报
回复
+1,要么将ajax改为同步,要么将你的判断放进ajax的回调函数中
引用 1 楼 calmcrime 的回复:
ajax 是异步的, 按楼主的写法,先是发送了一个post请求, if(winop==true) 到这一步的时候,post请求还没能request,即winop没改变值 而alert阻止了进程,相当于等待post请求的返回结果,终止了alert之后的程序。 楼主可以在success回调函数里操作,或者 使用ajax函数,将async设置为false。
mingfish2 2012-11-10
  • 打赏
  • 举报
回复
async设置为true。。。
001007009 2012-11-10
  • 打赏
  • 举报
回复
ajax 是异步的, 按楼主的写法,先是发送了一个post请求, if(winop==true) 到这一步的时候,post请求还没能request,即winop没改变值 而alert阻止了进程,相当于等待post请求的返回结果,终止了alert之后的程序。 楼主可以在success回调函数里操作,或者 使用ajax函数,将async设置为false。

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧