jQuery EasyUI常用数据验证汇总


Posted in Javascript onSeptember 18, 2016

easyui 的validatebox()提供了自定义验证的方法,为此我把一些常用的数据验证汇总了一下,代码如下

$.extend($.fn.validatebox.defaults.rules, {
 CHS: {
  validator: function (value, param) {
   return /^[\u0391-\uFFE5]+$/.test(value);
  },
  message: '请输入汉字'
 },
 ZIP: {
  validator: function (value, param) {
   return /^[1-9]\d{5}$/.test(value);
  },
  message: '邮政编码不存在'
 },
 QQ: {
  validator: function (value, param) {
   return /^[1-9]\d{4,10}$/.test(value);
  },
  message: 'QQ号码不正确'
 },
 mobile: {
  validator: function (value, param) {
   return /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/.test(value);
  },
  message: '手机号码不正确'
 },
 loginName: {
  validator: function (value, param) {
   return /^[\u0391-\uFFE5\w]+$/.test(value);
  },
  message: '登录名称只允许汉字、英文字母、数字及下划线。'
 },
 safepass: {
  validator: function (value, param) {
   return safePassword(value);
  },
  message: '密码由字母和数字组成,至少6位'
 },
 equalTo: {
  validator: function (value, param) {
   return value == $(param[0]).val();
  },
  message: '两次输入的字符不一至'
 },
 number: {
  validator: function (value, param) {
   return /^\d+$/.test(value);
  },
  message: '请输入数字'
 },
 idcard: {
  validator: function (value, param) {
   return idCard(value);
  },
  message:'请输入正确的身份证号码'
 }
});

/* 密码由字母和数字组成,至少6位 */
var safePassword = function (value) {
 return !(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(value));
}

var idCard = function (value) {
 if (value.length == 18 && 18 != value.length) return false;
 var number = value.toLowerCase();
 var d, sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91';
 var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
 if (re == null || a.indexOf(re[1]) < 0) return false;
 if (re[2].length == 9) {
  number = number.substr(0, 6) + '19' + number.substr(6);
  d = ['19' + re[4], re[5], re[6]].join('-');
 } else d = [re[9], re[10], re[11]].join('-');
 if (!isDateTime.call(d, 'yyyy-MM-dd')) return false;
 for (var i = 0; i < 17; i++) sum += number.charAt(i) * w[i];
 return (re[2].length == 9 || number.charAt(17) == v.charAt(sum % 11));
}

var isDateTime = function (format, reObj) {
 format = format || 'yyyy-MM-dd';
 var input = this, o = {}, d = new Date();
 var f1 = format.split(/[^a-z]+/gi), f2 = input.split(/\D+/g), f3 = format.split(/[a-z]+/gi), f4 = input.split(/\d+/g);
 var len = f1.length, len1 = f3.length;
 if (len != f2.length || len1 != f4.length) return false;
 for (var i = 0; i < len1; i++) if (f3[i] != f4[i]) return false;
 for (var i = 0; i < len; i++) o[f1[i]] = f2[i];
 o.yyyy = s(o.yyyy, o.yy, d.getFullYear(), 9999, 4);
 o.MM = s(o.MM, o.M, d.getMonth() + 1, 12);
 o.dd = s(o.dd, o.d, d.getDate(), 31);
 o.hh = s(o.hh, o.h, d.getHours(), 24);
 o.mm = s(o.mm, o.m, d.getMinutes());
 o.ss = s(o.ss, o.s, d.getSeconds());
 o.ms = s(o.ms, o.ms, d.getMilliseconds(), 999, 3);
 if (o.yyyy + o.MM + o.dd + o.hh + o.mm + o.ss + o.ms < 0) return false;
 if (o.yyyy < 100) o.yyyy += (o.yyyy > 30 ? 1900 : 2000);
 d = new Date(o.yyyy, o.MM - 1, o.dd, o.hh, o.mm, o.ss, o.ms);
 var reVal = d.getFullYear() == o.yyyy && d.getMonth() + 1 == o.MM && d.getDate() == o.dd && d.getHours() == o.hh && d.getMinutes() == o.mm && d.getSeconds() == o.ss && d.getMilliseconds() == o.ms;
 return reVal && reObj ? d : reVal;
 function s(s1, s2, s3, s4, s5) {
  s4 = s4 || 60, s5 = s5 || 2;
  var reVal = s3;
  if (s1 != undefined && s1 != '' || !isNaN(s1)) reVal = s1 * 1;
  if (s2 != undefined && s2 != '' && !isNaN(s2)) reVal = s2 * 1;
  return (reVal == s1 && s1.length != s5 || reVal > s4) ? -10000 : reVal;
 }
};

页面中要引入jquery.js 和 easyui.min.js 

html 代码中使用如下

<table class="grid" id="uiform">
<tr><td>登录名:</td><td><input required="true" id="txtUsername" type="text" class="txt03" /></td><td>真实姓名:</td><td><input id="txtTruename" validType="CHS" required="true" type="text" class="txt03" /></td></tr>
<tr><td>登录密码:</td><td><input validType="safepass" required="true" id="txtPassword" name="password" type="password" class="txt03" /></td><td>Email:</td><td><input id="txtEmail" name="email" validType="email" type="text" class="txt03" /></td></tr>
<tr><td>身份证号:</td><td><input validType="idcard" id="txtIdcard" name="idcard" type="text" class="txt03" /></td><td>QQ:</td><td><input validType="QQ" id="txtQq" name="qq" type="text" class="txt03" /></td></tr>
<tr><td>手机:</td><td><input validType="mobile" id="txtMobile" name="mobile" type="text" class="txt03" /></td><td>电话:</td><td><input id="txtTel" name="tel" type="text" class="txt03" /></td></tr>
<tr><td>家庭住址:</td><td colspan="3"><input validType="equalTo[txtMobile]" style="width:80%" id="txtHomeaddr" name="homeaddr" type="text" class="txt03" /></td></tr>
<tr><td>备注:</td><td colspan="3"> <input type="text" style="width:80%" class="txt03" id="txtRemark"></textarea></td></tr>
<tr><td> </td><td colspan="3"><input id="Checkbox1" type="checkbox" /><label>超级管理员</label>  <input id="Checkbox2" type="checkbox" /><label>禁用</label></td></tr> 
</table>

这一段JS 是必不可少的

$(function(){
 $('#uiform input').each(function () {
   if ($(this).attr('required') || $(this).attr('validType'))
    $(this).validatebox();
  })
 });

 这样就ok了 

如果在提交时验证表单有没有通过验证,则可使用下面的代码

var flag = true;

$('#uiform input').each(function () {
 if ($(this).attr('required') || $(this).attr('validType')) {
 if (!$(this).validatebox('isValid')) {
  flag = false;
  return;
 }
 }
})

if (flag)
 alert('验证通过!');
else
 alert('验证失败!');

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
文本框的字数限制功能jquery插件
Nov 24 Javascript
初学js 新节点的创建 删除 的步骤
Jul 04 Javascript
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 Javascript
js实现简易ATM功能
Oct 27 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
jQuery EasyUI封装简化操作
Sep 18 #Javascript
基于jQuery ligerUI实现分页样式
Sep 18 #Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 #Javascript
JQuery控制DIV的选取实现方法
Sep 18 #Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 #Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 #Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 #Javascript
You might like
php中socket的用法详解
2014/10/24 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
python持久性管理pickle模块详细介绍
2015/02/18 Python
详解python基础之while循环及if判断
2017/08/24 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
教师校本培训方案
2014/02/26 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
国旗下的演讲稿
2014/05/08 职场文书
中学生打架检讨书
2014/10/13 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
如何写好开幕词?
2019/06/24 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB