为easyui添加多条件验证

easyui的验证框架,validatebox不能有效的支持多个条件的验证,比如中文用户名,既要验证其是中文,又要验证其长度不超过6位时便显得很繁琐,需要反复的为easyui添加验证规则。

在此实现一个多个条件验证的验证规则,使验证规则通过参数传入自定义的验证规则中。

  1. 首先为easyui添加两个验证规则,即验证中文,和长度的规则。

                      

$.extend( $.fn.validatebox.defaults.rules,{
        length : {//验证长度
                        validator : function(value, param) {
                            var len = $.trim(value).length;
                            $.fn.validatebox.defaults.rules.length.message = "输入内容长度必须介于"+param[0]+"和"+param[1]+"之间.";
                            return len >= param[0] && len <= param[1];
                        },
                        message :""
                    },
         chinese : {// 验证中文
                        validator : function(value) {
                            return /^[\Α-\¥]+$/i.test(value);
                        },
                        message : '请输入中文'
                    }

});

        2.添加一个验证多条件的规则

 group : {// param的值为[]中值,多条件的验证规则
                        validator : function(value, param) {
                            var flag = false;
                            var message = "验证不通过";
                            for(var i=0;i<param.length;i++){
                                var validatorone = param[i];
                                var validatename =validatorone;
                                var validateParam =null;
                                //取名称和参数
                                if(validatorone.indexOf('[')>0){
                                    var start = validatorone.indexOf('[')+1;
                                    var end =validatorone.indexOf(']');
                                    validateParam =validatorone.substring(start,end).split(',');
                                    validatename = validatorone.substring(0,validatorone.indexOf('['));
                                }
                                flag = $.fn.validatebox.defaults.rules[validatename].validator(value,validateParam);
                                message =  $.fn.validatebox.defaults.rules[validatename].message;
                                //验证
                                /*flag = eval("$.fn.validatebox.defaults.rules[validatename].validator(value,validateParam)");
                                message=eval("$.fn.validatebox.defaults.rules[validatename].message");*/
                                
                                 $.fn.validatebox.defaults.rules.group.message = message;
                                 if(!flag){
                                    return flag;
                                 }
                            }
                           return true;
                        },
                        message : '验证未通过'
                    }

  3.调用

  <input name="name" class="easyui-validatebox" required="required" validtype="group['chinese','length[2,25]']" />

    由于多条件验证的参数是通过字符串传递的,所以如果子验证中还需要使用引号时需要转义。

          

    

转载于:https://www.cnblogs.com/lic309/p/4061877.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值