function checkCode(){  
    var temp;  
    $.ajax({       
       cache:false,  
        async:false,  
        type:"POST",      
        url:"doJSP/doCode.jsp",     
        data:"rand="+code.val(),    
        success:function(rand){  
            if(parseInt(code.val())==parseInt(rand) && code.val()!=""){  
                right(code,codeError);  
                codeError.html(" 验证码输入正确.");  
                temp=true;  
            }else{  
                temp2="false";  
                wrong(code,codeError);  
                codeError.html(" 验证码输入错误,可以点击图片刷新.");  
                temp=false;  
            }  
        }  
   });  
   return temp;
关键这个属性: async:false
默认为true,表示异步请求,改为false同步请求,就能取到上面代码temp的值...困扰蛮久的问题,开始还以为是js的作用域,测试无果,终于找到原来是$.ajax没设置好- -!