標籤:
最近在做畢業項目,註冊表單裡用$.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的原因?