日期:2014-05-16  浏览次数:20642 次

关于jquery中的json对象的问题 - Web 开发 / Ajax
看代码:
JScript code

$("#rolelist_form #select_user").change(function(){
        var uid=$("#rolelist_form select :selected").val();
        //获取所有的checkbox元素
        var objs=$("#rolelist_form div[id=rolelist] input[id=select_role]");
        $.getJSON("../CRM/Action/checkuser_role.php",{id:uid}, function(data){
            if(data["roleid"]==null){
                for(var j=0;j<objs.length;j++){
                        objs[j].checked=false;
                        objs[j].disabled=false;
                }
            }else{
                for(var i=0;i<objs.length;i++){
                    if(data["roleid"]==parseInt(objs[i].value)){
                        objs[i].checked=true;
                        objs[i].disabled=true;
                    }else{
                        listSpecialPrefix.jsp</result>
         <result name="input">/baseset/listSpecialPrefix.jsp</result>
    </action>
</package>
</struts>


在data["roleid"]的不为空时,能正常执行else里的语句;但在data["roleid"]为空时,却不能执行if里的语句。请高人帮忙看看!
后台代码:
PHP code

 $uid=$_GET["id"];
    $urtdao=new UserRoleTempDAO();
    $urtarray=$urtdao->checkUserByRole($uid);
    if(count($urtarray)!=0){
        $json=json_encode($urtarray);
        echo $json;
    }else{
        $urtarray["roleid"]="null";
        $json=json_encode($urtarray);
        echo $json;
    }



------解决方案--------------------
首先判断
data
这是必须做的

如果没返回你执行下面的干什么?

data.length进行判断

------解决方案--------------------
你可以先alert(data);
看看返回类型

如果不是null就往下就OK了
------解决方案--------------------
Java code
 if(data["roleid"]==null||data["roleid"]=="")

------解决方案--------------------
你alert(data["roleid"]);看是什么值,也许data["roleid"]=="";