verify.jsフォーマット検証プラグイン


これは極めて簡潔なフォーム検証プラグインで、50行のコードしかないです.半パッケージモードに属しています.業務論理コードは任意に作成できます.コアコードは以下の通りです.
(function(){
    //     
    if(!$.fn.hasOwnProperty('verify')){
        $.fn.verify = function(config) {
            var fields = [], item;
            if (!config) return;
            //       
            function isFunction(obj) {
                return !!(obj && obj.constructor && obj.call && obj.apply);
            }
            //       (  )
            function handleSubmit() {
                var  i, errors = false, len = fields.length;
                for (i = 0; i < len; i++) {
                    if (!fields[i].testValid()) errors = true;
                }
                if (errors) return false;
                if (isFunction(config.success)) return config.success();
            }
            function process(opts, selector) {
                var field = $(selector),
                    error = {message: opts.message || ''},
                    errorEl = config.errorTemplate(error);
                //    input          ,                             
                fields.push(field);
                //       
                field.testValid = function testValid() {
                    var temp, error, el = $(this), val = el.val();
                    error = !opts.test(val);
                    if (error) {
                        el.after(errorEl);
                        return false;
                    } else {
                        temp = errorEl.get(0);
                        temp.parentNode && temp.parentNode.removeChild(temp);
                        return true;
                    }
                };
                //   input        
                field.on('blur', field.testValid);
            }
            //     
            for(item in config.fields) {
                process(config.fields[item], item)
            }
            //         
            if (config.submitButton) {
                $(config.submitButton).click(handleSubmit);
            } else {
                this.on('submit', handleSubmit);
            }
            //     ,   
            return fields;            
        }
    }    
})();
プラグインの呼び出し方法は以下の通りです.
(function(){
    //     
    $('#register').verify({
        fields:{
            //      ,      
            '#register input[name="phone"]':{
                //      
                message:'         ,     ',
                //    ,     ,true   ,false   ,                ,    bool   ,   
                test:function(val){
                    var reg = /^(1[3-8][0-9])\d{8}$/;
                    return reg.test(val);
                }
            },
            '#register input[name="password"]':{
                message:'          ',
                test: function (val) {
                    if (!val) return false;
                    var reg = /^[a-zA-Z0-9]{6,20}$/;
                    return reg.test(val);
                }
            },
            '#register input[name="repassword"]':{
                message:'         !',
                test:function(val){
                    var password = $('input[name="password"]').val();
                    if(password != val) {
                        return false;
                    } else {
                        return true;
                    }
                }
            }                            
        },
        //     ,           ,             
        errorTemplate:function(error){            
            return $('
' + error.message + '
'); }, // , success:function(){ //coding~~ } // , , form.submit; submitButton: '#register .submit' }); })
本来は、プラグインに固定されたフォームの検証方法を実装したいですが、さまざまな業務のニーズがあることが分かりました.確かに、このような方法で提示されています.一般的な検査プロセスだけをパッケージ化して、業務ロジックは自分で挿入します.
下に転送ゲートが付いています.詳しいテストデモは自分でジャンプしてダウンロードしてください.ありがとうございます.https://github.com/cloverso/verify