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

方法一:

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

rush:js;"> Box" data-options="required:true,validType:['email','length[0,20]']">

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

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

然后再添加

rush:js;"> $.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}.' } });

调用方法

rush:js;"> Box" data-options="required:true,validType:'multiple[\'email\',\'length[0,20]\']'">

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

= param[0]; },message : '' } });

根据方法三的试验:

//再次输入密码效验(与上一次一样;密码介于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 >= p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m[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两边不能写引号)

rush:js;">

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

= 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之<a href="https://www.jb51.cc/tag/jiande/" target="_blank" class="keywords">间的</a>整数'
  },chi<a href="https://www.jb51.cc/tag/nes/" target="_blank" class="keywords">nes</a>e: {// 验证<a href="https://www.jb51.cc/tag/zhongwen/" target="_blank" class="keywords">中文</a>
    validator: function (value) {
      return /^[\Α-\¥]+$/i.test(value);
    },message: '请输入<a href="https://www.jb51.cc/tag/zhongwen/" target="_blank" class="keywords">中文</a>'
  },english: {// 验证英语
    validator: function (value) {
      return /^[A-Za-z]+$/i.test(value);
    },message: '请输入英文'
  },un<a href="https://www.jb51.cc/tag/nor/" target="_blank" class="keywords">nor</a>mal: {// 验证是否包含空格和非法字符
    validator: function (value) {
      return /.+/i.test(value);
    },message: '输入值不能为空和包含其他非法字符'
  },username: {// 验证<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>
    validator: function (value) {
      return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
    },message: '<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>不合法(字母开头,允许6-16字节,允许字母数字下划线)'
  },faxno: {// 验证传真
    validator: function (value) {
      //      return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/i.test(value);
      return /^((\d{2,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: {// 验证姓名,可以是<a href="https://www.jb51.cc/tag/zhongwen/" target="_blank" class="keywords">中文</a>或英文
    validator: function (value) {
      return /^[\Α-\¥]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
    },message: '请输入姓名'
  },date: {// 验证姓名,可以是<a href="https://www.jb51.cc/tag/zhongwen/" target="_blank" class="keywords">中文</a>或英文
    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,p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m) {
      if ($("#" + p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m[0]).val() != "" && value != "") {
        return $("#" + p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m[0]).val() == value;
      } else {
        return true;
      }
    },message: '两次输入的密码不一致!'
  }</pre>

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...