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

jquery及ajax 都验证通过 为什么这个方法最后返回false,急死了
function checkemail(){
var reg=false;


var email = $('#txtEmail').val();
var tag=/^[A-Za-z0-9\d]+([-_\.\+]*[A-Za-z0-9\d])*@([a-z0-9\d][a-z0-9\d-]{0,61}[a-z0-9\d]\.)+[a-z\d]{2,6}$/;
if(email==null||email.length<=0){
$("#email_error").text("邮箱不能为空");
   
 
}else if(!tag.test(email)){
$("#email_error").text("邮箱格式不正确");
   
   
}else{

$.ajax({
type:"get",
url:"validateemail?email="+email,
dataType:"json",
success:function(data){
if(data.isEmail=="no"){
$("#email_error").text("邮箱已被占用");
 
        
}else{

  $("#email_error").text("邮箱可以使用");
                      
  reg=true;
           
}

}
  
});

}

if(reg == false){
            return false;
        }else{
           return true;
                   
                }
· jquery ajax function

------解决方案--------------------
你的ajax应该是异步的  这时在ajax返回值前程序依然往下运行,所以在ajax将reg赋值为true前方法就将reg为false的值返回了   你让程序延时一秒返回试试 看可以不
------解决方案--------------------
$.ajax({
async:false,
.....