遇到一個問題,需要驗證手機號是否正確,手機號是否存在。所以用js寫自定義校驗。
開始的方式(不正確):
這種方式在ajax的回調函數裏面return,不能正常判斷。
查看了easyui自帶的remote的實現方式以後,發現他的實現方式如下:
按照源碼的方式修改代碼以後正常:
$.extend($.fn.validatebox.defaults.rules, {
username: {
validator: function(value){
var rex = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
if(rex.test(value))//手機號碼正確的話,校驗是否已存在
{
var id = $('#mid').val();
var url = '${root}/user/checkUserName?m.id='+id+'&m.username='+value;
var ret = $.ajax({url:url,async:false,cache:false,type:"post"}).responseText;//這裏一定要用這種方式,如果是在ajax的回調函數裏面return就不行。
var b = ret=="true";
if(!b){
$.fn.validatebox.defaults.rules.username.message = '用戶名已存在';
}
return b;
}else
{
$.fn.validatebox.defaults.rules.username.message = '請輸入正確的手機格式';
return false;
}
},
message:''
}
});