easyui关于validatebox实现多重规则验证的方法(必看)


Posted in Javascript onApril 12, 2017

方法一:

自从1.3.2版本开始,validatebox自身已经支持多重校验了,例如:

<input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">

方法二:(不太好用,试了半天还是不显示第二个验证的消息)

对于1.5版本的easyui.min,注释掉以下代码:

easyui关于validatebox实现多重规则验证的方法(必看)

然后再添加

$.extend($.fn.validatebox.defaults.rules, { 
      multiple : { 
        validator : function(value, vtypes) { 
          var returnFlag = true; 
          var opts = $.fn.validatebox.defaults; 
          for (var i = 0; i < vtypes.length; i++) { 
            var methodinfo = /([a-zA-Z_]+)(.*)/.exec(vtypes[i]); 
            var rule = opts.rules[methodinfo[1]]; 
            if (value && rule) { 
              var parame = eval(methodinfo[2]); 
              if (!rule["validator"](value, parame)) { 
                returnFlag = false; 
                this.message = rule.message; 
                break; 
              } 
            } 
          } 
          return returnFlag; 
        } 
      }, 
      length : { 
        validator : function(value, param) { 
          this.message = 'Please enter a value between {0} and {1}.'; 
          var len = $.trim(value).length; 
          if (param) { 
            for (var i = 0; i < param.length; i++) { 
              this.message = this.message.replace(new RegExp( 
                      "\\{" + i + "\\}", "g"), param[i]); 
            } 
          } 
          return len >= param[0] && len <= param[1]; 
        }, 
        message : 'Please enter a value between {0} and {1}.' 
      } 
    });

调用方法

<input class="easyui-validatebox" data-options="required:true,validType:'multiple[\'email\',\'length[0,20]\']'">

方法三:(可以实现两种验证的消息)

$.extend($.fn.validatebox.defaults.rules, { 
  minLength : { 
    validator : function (value, param) { 
      var rules = $.fn.validatebox.defaults.rules; 
      rules.minLength.message = 'Please enter at least {0} characters.'; 
      if(!rules.email.validator(value)){ 
        rules.minLength.message = rules.email.message; 
        return false; 
      } 
      if(!rules.length.validator(value,param)){ 
        rules.minLength.message = rules.length.message; 
        return false; 
      } 
      return value.length >= param[0]; 
    }, 
    message : '' 
  } 
});

根据方法三的试验:

$.extend($.fn.validatebox.defaults.rules, {
  
  //再次输入密码效验(与上一次一样;密码介于6-16位)
  checkpwd: {
    validator: function (value, param) {
      var rules = $.fn.validatebox.defaults.rules;
      rules.checkpwd.message = 'Please enter at least {0} characters.';
      
      if (!rules.passequals.validator(value,param)) {
        rules.checkpwd.message = rules.passequals.message;
        return false;
      }
      if (!rules.minlength.validator(value)) {
        rules.checkpwd.message = rules.minlength.message;
        return false;
      }
      return value.length >= param[0];
    },
    message: ''
  },
  passequals: {
    validator: function (value, param) {
      return value == $(param[0]).val();
    },
    message: '两次密码不一致.'
  },
  
  minlength: {
    validator: function (value) {
      var len = $.trim(value).length;
      return len >=6 && len <= 16;
    },
    message: "输入内容长度必须介于6和16之间."
  }
});

调用:(注意pwd两边不能写引号)

<input id="pwd" name="pwd" type="password" class="easyui-validatebox" />
<input id="rpwd" name="rpwd" type="password" class="easyui-validatebox" data-options="validType:'checkpwd[pwd]'" />

附录: 可以参考的验证规则:

idcard: {// 验证身份证
        validator: function (value) {
          return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value);
        },
        message: '身份证号码格式不正确'
      },
 minLength: {
        validator: function (value, param) {
          return value.length >= param[0];
        },
        message: '请输入至少(2)个字符.'
      },
 length: { validator: function (value, param) {
        var len = $.trim(value).length;
        return len >= param[0] && len <= param[1];
      },
        message: "输入内容长度必须介于{0}和{1}之间."
      },
 phone: {// 验证电话号码
        validator: function (value) {
          return /^((\d{2,3})|(\d{3}\-))?(0\d{2,3}|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
        },
        message: '格式不正确,请使用下面格式:020-88888888'
      },
mobile: {// 验证手机号码
        validator: function (value) {
          return /^(13|15|18)\d{9}$/i.test(value);
        },
        message: '手机号码格式不正确'
      },
intOrFloat: {// 验证整数或小数
        validator: function (value) {
          return /^\d+(\.\d+)?$/i.test(value);
        },
        message: '请输入数字,并确保格式正确'
      },
currency: {// 验证货币
        validator: function (value) {
          return /^\d+(\.\d+)?$/i.test(value);
        },
        message: '货币格式不正确'
      },
qq: {// 验证QQ,从10000开始
        validator: function (value) {
          return /^[1-9]\d{4,9}$/i.test(value);
        },
        message: 'QQ号码格式不正确'
      },
integer: {// 验证整数 可正负数
        validator: function (value) {
          //return /^[+]?[1-9]+\d*$/i.test(value);

          return /^([+]?[0-9])|([-]?[0-9])+\d*$/i.test(value);
        },
        message: '请输入整数'
      },
 age: {// 验证年龄
        validator: function (value) {
          return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i.test(value);
        },
        message: '年龄必须是0到120之间的整数'
      },

 chinese: {// 验证中文
        validator: function (value) {
          return /^[\Α-\¥]+$/i.test(value);
        },
        message: '请输入中文'
      },
english: {// 验证英语
        validator: function (value) {
          return /^[A-Za-z]+$/i.test(value);
        },
        message: '请输入英文'
      },
unnormal: {// 验证是否包含空格和非法字符
        validator: function (value) {
          return /.+/i.test(value);
        },
        message: '输入值不能为空和包含其他非法字符'
      },
 username: {// 验证用户名
        validator: function (value) {
          return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
        },
        message: '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'
      },
faxno: {// 验证传真
        validator: function (value) {
          //      return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/i.test(value);
          return /^((\d{2,3})|(\d{3}\-))?(0\d{2,3}|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
        },
        message: '传真号码不正确'
      },
 zip: {// 验证邮政编码
        validator: function (value) {
          return /^[1-9]\d{5}$/i.test(value);
        },
        message: '邮政编码格式不正确'
      },
ip: {// 验证IP地址
        validator: function (value) {
          return /d+.d+.d+.d+/i.test(value);
        },
        message: 'IP地址格式不正确'
      },
name: {// 验证姓名,可以是中文或英文
        validator: function (value) {
          return /^[\Α-\¥]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
        },
        message: '请输入姓名'
      },
date: {// 验证姓名,可以是中文或英文
        validator: function (value) {
          //格式yyyy-MM-dd或yyyy-M-d
          return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i.test(value);
        },
        message: '清输入合适的日期格式'
      },
msn: {
        validator: function (value) {
          return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
        },
        message: '请输入有效的msn账号(例:abc@hotnail(msn/live).com)'
      },
same: {
        validator: function (value, param) {
          if ($("#" + param[0]).val() != "" && value != "") {
            return $("#" + param[0]).val() == value;
          } else {
            return true;
          }
        },
        message: '两次输入的密码不一致!'
      }

以上这篇easyui关于validatebox实现多重规则验证的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
Dec 12 Javascript
JS正则表达式常见函数与用法小结
Apr 13 Javascript
浅谈克隆 JavaScript
Nov 02 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 #Javascript
JavaScript数据结构中串的表示与应用实例
Apr 12 #Javascript
javascript数据结构之串的概念与用法分析
Apr 12 #Javascript
详解RequireJS按需加载样式文件
Apr 12 #Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 #Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 #jQuery
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 #Javascript
You might like
php类
2006/11/27 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
JavaScript的eval JSON object问题
2009/11/15 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python enumerate内置函数用法总结
2020/01/07 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
Python如何操作docker redis过程解析
2020/08/10 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
计生个人工作总结
2015/02/28 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
导游词之张家界
2019/10/31 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL