Jquery easyui如何支持验证多种类型

发布时间:2020-04-23编辑:脚本学堂
本文介绍了Jquery easyui如何支持验证多种类型的方法,感兴趣的朋友参考下。

例子,jquery easyui验证。
 

复制代码 代码示例:

<!--StartFragment -->
为了能够同时进行多种验证,我对其进行了如下扩展:
multipleValidType:{validator:function(_2fca,_2fda){
var opts = $.fn.validatebox.defaults;
var returnFlag = true;
for(var i = 0 ; i < _2fda.length ; i++){

var _2f31=/([a-zA-Z_]+)(.*)/.exec(_2fda[i]);
var rule=opts.rules[_2f31[1]];
if(_2fca&&rule){
var _2f41=eval(_2f31[2]);
if(!rule["validator"](_2fca,_2f41)){
returnFlag = false;
break;
}
}

}
return returnFlag;
},message:"Multiple ValidType needed"}
 

如有问题希望大家提出!
使用方式:

复制代码 代码示例:
<input type="text" name="org.oemail" class="easyui-validatebox" validType="multipleValidType['email','length[0,20]']" size="23" />

解决方法:
 

复制代码 代码示例:
multipleValidType : { 
    validator : function(value, param){ 
        var opts = $.fn.validatebox.defaults; 
        var returnFlag = true; 
         
        for(var i = 0 ; i < param.length ; i++){ 
            var result = /([a-zA-Z_]+)(.*)/.exec(param[i]); 
            //console.info("result=="+result);//result==length[0,30],length,[0,30] 或者 result==dirtyChar,dirtyChar, 
            var rule = opts.rules[result[1]]; 
             
            if(value && rule){ 
                var ruleParam = eval(result[2]); 
                //console.info("ruleParam=="+ruleParam);//ruleParam==0,30 
                if(!rule["validator"](value, ruleParam)){ 
                    var message = rule["message"]; 
                    if (ruleParam) { 
                        for ( var i = 0; i < ruleParam.length; i++) { 
                            message = message.replace(new RegExp("{" + i + "}", "g"), ruleParam[i]); 
                        } 
                    } 
                     
                    $.fn.validatebox.defaults.rules.multipleValidType.message = message; 
                     
                    returnFlag = false; 
                    break; 
                }    
            } 
        } 
        return returnFlag; 
    }, 
    message : "" 

要显示对应规则的message,主要是这句:
$.fn.validatebox.defaults.rules.multipleValidType.message = message; 

不过,easyui新的版本中是不是已经有这条规则了。