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]']" />

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

    

最新文章

  1. 【CVE-2016-10009】OpenSSH &lt; 7.4 - agent Protocol Arbitrary Library Loading
  2. C#调用win32 api程序实例
  3. PHP的ob_start()函数用法
  4. Android中的四种动画(一)
  5. spring 下载地址
  6. .Net(C#)Parallel&quot;循环&quot;的解释以及与循环的比较
  7. Eclipse启动tomcat时报错:Multiple Contexts have a path of &quot;/xxx&quot;
  8. C++ string 转 char*
  9. 剑指OFFER之数值的整数次方(九度OJ1514)
  10. jquery + json 操作
  11. Android 应用开发性能优化完全分析
  12. 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
  13. java之Comparator与Comparable
  14. Invalid file permission Please regenerate them with cacaoadm create-keys --force
  15. Cookie例子
  16. AngularJs ng-repeat
  17. 用C# (.NET Core) 实现迭代器设计模式
  18. Pytorch划分数据集的方法
  19. 【翻译】七个习惯提高Python程序的性能
  20. 关于RAID的概述

热门文章

  1. ArrayList动态数组System.Collections命名空间下
  2. linux bash命令行基本操作
  3. OO 普通类与静态类的区别
  4. Javascript:splice() 方法浅析
  5. Linux系统忘记管理员密码(CentOS、RHEL、Ubuntu)
  6. SCPO2015 小凸玩矩阵
  7. binlog2sql
  8. Heap堆
  9. Flink学习笔记:Flink API 通用基本概念
  10. EndNote登陆Web账号时解决不断询问用户名密码