首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求解$.post(url,{},function(){});回调函数中怎么使用判断语句

2012-12-27 
求解$.post(url,{},function(){})回调函数中如何使用判断语句本人是菜鸟,想用Jquery来判断昵称是否被占用

求解$.post(url,{},function(){});回调函数中如何使用判断语句
本人是菜鸟,想用Jquery来判断昵称是否被占用(用户信息保存在数据库中),由于没有导师,在这里求助各位大虾帮忙!
代码如下:
$(function(){
$("#txtNickName").blur(function(){
flag.nickname=false;
var reg=/[u4e00-\u9fa5A-Za-z-0-9-_]*/;
var nickname=$("#txtNickName").val();
flag.nickname=reg.test(nickname);//匹配昵称是否包含非法字符
//昵称为空
if(nickname==""){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称不能为空!");
return;
//昵称不为空
}else if(nickname.toString().length<=3||nickname.toString().length>20){
$("#name\\.info").html("<img src='../images/wrong.gif'/>昵称长度4-20个字符,一个汉字为两个字符!");
return;
}else{
//匹配正则表达式
if(flag.nickname==true){
//ajax检测
         $("#name\\.info").html("<img src='../images/window_loading.gif'/>正在检测...");
         $.post("/dangdang05.2/check.servlet",
            {'nickname':nickname},
             function(data){
                                     alert(data);

                                     if(data){ //问题在这里,不管data为false还是true,他都只执行if,else不执行,求解                                          $("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
                        }else{
             $("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");  
                  }
          }
       );
         //不匹配正则表达式
        }else{
   $("#name\\.info").html("<img src='../images/wrong.gif'/>您的昵称包含非法字符,请重新输入");
   }
    }
});
});
[解决办法]
你传过来的data类型是字符串还是布尔类型。你把它当字符类型来判断试试
[解决办法]
$.post("/dangdang05.2/check.servlet",
            {'nickname':nickname},
             function(data){
            var s = data+"";
           if(s=='true'){
         alert('s:'+s);
             $("#name\\.info").html("<img src='../images/wrong.gif'/>昵称已被占用!");
             flag.nickname=false;


           }else{
             $("#name\\.info").html("<img src='../images/right.gif'/>昵称可用!");  
                  }
          }
       );
[解决办法]
返回的应该是字符串类型,if(s=='true')这么判断,还得确定一下返回的data是不带空格换行这些的。
[解决办法]
首先,你alert出来的是不是有true  和 false 两种情况,第二,试下  
 alert(data);
 data = true;   //data=false;
 if(data){ //问题在这里,不管data为false还是true,他都只执行if,else不执行,求解   

看下是不是还是只执行一种  

热点排行