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 相关文章推荐
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
全面解析Bootstrap中form、navbar的使用方法
May 30 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
Angular的$http与$location
Dec 26 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 Javascript
vue项目常用组件和框架结构介绍
Dec 24 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 Javascript
vue实现数字动态翻牌的效果(开箱即用)
Dec 08 Javascript
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
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中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
两种php实现图片上传的方法
2016/01/22 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
python返回昨天日期的方法
2015/05/13 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
python异常处理try except过程解析
2020/02/03 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
交通事故协议书范文
2014/04/16 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL