例子,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新的版本中是不是已经有这条规则了。