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,
.....