easyui 自定義校驗使用ajax方式。

遇到一個問題,需要驗證手機號是否正確,手機號是否存在。所以用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:''
            }
        });


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章