关于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"]=="";