最近在做毕业项目,注册表单里用$.ajax提交数据给服务器端php检查账号是否已经注册过,success时函数的返回值为什么总是undefined?
var reg_mail = $.trim($("#reg_mail").val()).toLowerCase(); //注册邮箱获取
var reg = /^[a-z0-9]+[@][a-z0-9]+[.][a-z0-9]+$/; //设置邮箱匹配正则
if(reg.test(reg_mail)){ //如果邮箱符合规范就提交服务器进行校对
$("#reg_mail").parent().find(".err_tip").html("");
$("#reg_mail").parent().find(".succ_tip").html("邮箱格式正确");
$.ajax({ //检查用户名存不存在
type:‘post‘,
url:‘php/reg_check.php‘, //服务器端的php文件,用于校验账号是否已经存在
data:{umail:reg_mail}, //提交邮箱给php文件
success:function(data){
if(data.code==0){ //如果邮箱已经存在就返回code为0
$("#reg_mail").parent().find(".succ_tip").html("");
return false; /* 不明白为什么这里return回来的总是undefined*/
}else{
$("#reg_mail").parent().find(".err_tip").html("");
$("#reg_mail").parent().find(".succ_tip").html(data.msg);
return true; /* 不明白为什么这里return回来的总是undefined*/
}
},
error:function(data){flag=false; return false; }
}
)
}
else{
$("#reg_mail").parent().find(".succ_tip").html("");
$("#reg_mail").focus().parent().find(".err_tip").html("邮箱格式不正确,请重新输入");
return false;
}
}
我自己百度了一下,有的说是ajax的执行顺序并不全部是根据代码顺序来的。但这样解释似乎也不对,烦请大神指点一二。谢谢先。
ajax success回调函数里return undefined的原因?
原文:http://www.cnblogs.com/Jerry1985/p/5966148.html