码迷,mamicode.com
首页 > 其他好文 > 详细

量身定做的原生验证插件

时间:2016-04-15 00:34:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

<!DOCTYPE HTML>  

<head>  
<meta charset="utf-8">

</head>  
  
<body>  

<form id="validForm" novalidate="novalidate">
    <label for="username">
        用户名:<input type="text" name="username" id="username" />
    </label>
    <label for="password">
        密码:<input type="text" name="password" id="password" />
    </label>
    <label for="password">
        确认密码:<input type="text" name="confirm" id="confirm" />
    </label>
    <input type="submit" id="submit" />
</form>

<script>  
        window.onload=function(){
                
            new Valid(validForm,{
                    rules:{
                        username:{
                            require:true,
                            isDigital:true,
                            isMobile:true
                        },
                        password:{
                            require:true,
                            alphDig:true
                        },
                        confirm:{
                            isEqualTo:password
                        }
                    },
                    messages:{
                        
                        username:{
                            require:我是不一样的东西
                        }
                        
                    }
                })
            console.log(document.getElementById(username).messages_oby);
            
                
        }
        function Valid(formId,msg){
            
                this.oForm=document.getElementById(formId);
                this.msg=msg;
                this.rules=this.msg.rules;
                this.messages=this.msg.messages;
                this.tips={//默认的提示消息
                        require:此项必须填写,
                        alphDig:必须为字母数字组合,
                        isDigital:必须为数字组合,
                        isMobile:必须为手机号码组合,
                        isEqualTo:必须与第一次输入一致
                        
                };
                this.triggerevent=blur;
                
                this.validList=[];
                
                //要验证的元素
                for(var attr in this.rules){
                    
                        var obj=document.getElementById(attr);
                        obj.rules_oby=this.rules[attr];/*_oby防止属性名称冲突,在元素身上绑定事件规则*/
                        obj.messages_oby={};//放入消息提示的对象
                        obj.isDirty_oby=false;//判断是否为脏数据,即第一次不提示错误信息
                        this.validList.push(obj);
                }
                
                this.init();
        }
        Valid.prototype.init=function(){
            this.setTip();
        }
        //默认提示语,每个要验证的元素上都有一个messages_oby对象
        Valid.prototype.setTip=function(){
                
                
                if(this.messages==undefined||tool_oby.isPlainObject(this.messages)){//没有传入默认提示值得情况
                        
                        for(var i=0;i<this.validList.length;i++){//遍历需要验证的元素
                                
                                var obj=this.validList[i];
                                
                                for(var attr in obj.rules_oby){//设置第i个元素的tips
                                    
                                        if(obj.rules_oby[attr]){//规则为true时,传入默认信息
                                                obj.messages_oby[attr]=this.tips[attr];
                                        }
                                }
                        }
                        
                }else{//有传入消息提示的情况
                        
                        for(var i=0;i<this.validList.length;i++){//遍历需要验证的元素
                                
                                var obj=this.validList[i];
                                var objId=this.validList[i].id;
                                var objMsg=this.messages[objId];//获取第i个传入元素的tip对象
                                
                                for(var attr in obj.rules_oby){//设置第i个元素的tips
                                    
                                        if(obj.rules_oby[attr]&&(objMsg!==undefined&&objMsg[attr])){//规则为true时,并且有传入tip
                                                obj.messages_oby[attr]=objMsg[attr];
                                                
                                        }else{
                                                obj.messages_oby[attr]=this.tips[attr];
                                                
                                        }
                                }
                        }
                                
                }
        }
        
        Valid.prototype.events=function(){//绑定验证事件
            
        }
        /*--------工具方法----------------*/
        //判断是否为空对象
        var tool_oby={};
        tool_oby.isPlainObject=function(obj){
            var btn=false;
                for(var attr in obj){
                            btn=true;
                            break;
                }
                if(btn){
                    return false;
                }else{
                    return true;
                }
        }
        /*--------验证方法----------------*/
        var validFn_oby={};
        validFn_oby.isDigital=function(str){//验证是否为数字
            
        }
        validFn_oby.isMobile=function(str){//验证是否为手机号码
            
        }
        validFn_oby.alphDig=function(str){//验证是否为数字字母组合
            
        }
        validFn_oby.isEqualTo=function(obj,str){//验证是否与之前输入一样
            
        }
        
</script>  
  
</body>  
</html>  

 

量身定做的原生验证插件

标签:

原文地址:http://www.cnblogs.com/obeing/p/5393595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!