对easyui-validatebox的验证类型的扩展
easyui为我们提供了validatebox类型的组件,使用它可以完成自动验证,十分方便。要注意的是,easyui中的各个组件都是有继承关系的。通过查看api,textbox继承validatebox,而其他的组件类型又直接或间接的继承textbox,所以,只要使用了easyui form插件中的一类,那么自然的我们就能使用它的验证框架。
一.自带验证类型
easyui-validatebox为我们提供了基本的验证,有五种,分别为required、email、url、length[0,100]、remote['http://.../action.do','paramName']。
<input type="text" name="a" class="easyui-validatebox" data-options="required:true">
<input type="text" name="b" class="easyui-validatebox" data-options="required:true,validType:'email'">
<input type="text" name="c" class="easyui-validatebox" data-options="required:true,validType:length[6,9]">
<!-- easyui 1.3.2以后可用 -->
<input type="text" name="d" class="easyui-validatebox" data-options="required:true,validType:['email','length[6,9]']">
<!-- remote类型就不演示了,因为它本质上是ajax验证,但ajax一般是要有特殊处理的,大家自己调用ajax进行验证就好 -->
这样来看easyui-validatebox是不是使用起来非常简单呢?不过,它只为我们提供了比较基础的验证类型, 如果有更多的要求,我们就需要自己自定义验证类型了。
二.自定义验证类型:
1.api提供的自定义验证类型
$.extend($.fn.validatebox.defaults.rules, {
//验证两个输入框相等
equals: {
validator: function(value,param){
return value == $(param[0]).val();
},
message: 'Field do not match.'
},
//输入的最小长度
minLength: {
validator: function(value, param){
return value.length >= param[0];
},
message: 'Please enter at least {0} characters.'
}
});
<!-- 验证两次输入的密码是否相等 -->
<input id="pwd" name="pwd" type="password" class="easyui-validatebox" data-options="required:true">
<input id="rpwd" name="rpwd" type="password" class="easyui-validatebox" required="required" validType="equals['#pwd']">
<!-- 验证输入字段的最小长度 -->
<input class="easyui-validatebox" data-options="validType:'minLength[5]'">
当我们定义完了自定义验证类型后,就可以像easyui提供给我们的类型一样去使用了。
注意看equals['#pwd']传入的是id,而minLength[5]传入的是数值,这个具体的要看内部实现。“validator:function(value, param){}”中param是数组类型。
这里要补充一下,其实easyui本质上是jquery的插件,而我们的自定义类型,就是对jquery插件方法的扩展。更多关于jquery插件的问题,可以查阅其他的资料,当然,以后我也会对其进行总结的。
2.更多的自定义类型
/*
* 比较两个日期的大小
* 传入的参数推荐是"yyyy-mm-dd"的格式,其他的日期格式也可以,但要保证一致
*/
var dateCompare = function(date1, date2){
if(date1 && date2){
var a = new Date(date1);
var b = new Date(date2);
return a < b;
}
} /*
* 对easyui-validatebox的验证类型的扩展
*/
$.extend($.fn.validatebox.defaults.rules, {
//手机号码
mobile: {
validator: function(value, param){
return /^0{0,1}1[3,8,5][0-9]{9}$/.test(value);
},
message: "手机号码格式不正确"
},
//身份证
IDCard: {
validator: function(value, param){
return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value);
},
message: "请输入正确的身份证号码"
},
//比较时间选择器
compareDate: {
validator: function(value, param){
return dateCompare($(param[0]).datetimebox("getValue"), value);
},
message: "结束日期不能小于开始日期"
}
});
这里也只列举了几个比较常用的自定义类型,未来还会继续对其进行补充。
三.总结
easyui-validatebox是一个比较轻便的验证框架,但它同时又支持对其自定义,所以功能也非常强大。其实在自定义验证类型的过程中,我觉得最重要的反而是正则表达式的知识。
四.补充列表
《对easyui-validatebox的验证类型的扩展--补充》增加了更多的自定义类型,2016-06-03
对easyui-validatebox的验证类型的扩展的更多相关文章
- 对easyui-validatebox的验证类型的扩展--补充
一.说明 这篇文章是<对easyui-validatebox的验证类型的扩展>的补充.在工程的持续开发中,我们又对此进行了更多的补充. 二.补充代码 增加了更多的验证类型. /* * 比较 ...
- Easyui validatebox后台服务端验证
Easyui validatebox的验证提示十分好用,可是在实际项目的运用中,经常会遇到需要服务器验证后并返回验证结果信息,比如验证用户名.手机号.邮箱是否已存在.于是就想着怎么拓展Easyui的验 ...
- easyui validatebox 验证类型
required: "必选字段", remote: "请修正该字段", email: "请输入正确格式的电子邮件" ...
- 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树
EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...
- Easyui表单验证扩展
简介: 使用Easyui,我们省了好多事情,不用为UI费心,只需要关注业务层面即可,下面是一些常用的验证方面的扩展,收藏下自己用 //重载$.fn.validatebox.defaults.rules ...
- JQuery EasyUI validatebox(验证框)
JQuery EasyUI validatebox(验证框) http://www.easyui.info/archives/602.html
- EasyUI Validatebox 验证框
转自:http://www.jeasyui.net/plugins/167.html 通过 $.fn.validatebox.defaults 重写默认的 defaults. 验证框(validate ...
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
{ field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { ...
- easyUI validatebox设置值和获取值,以及属性和方法
一:表单元素使用easyui时,textbox和validatebox设置值和获取值的方式不一样[转] 1.为text-box设置值只能使用id选择器选择表单元素,只能使用textbox(" ...
随机推荐
- Spring学习笔记-Hello Spring
实现原理 采用XML方式配置Bean的时候,Bean的定义和实现分离的,采用注解的方式可以将两者合为一体,Bean的定义信息直接以注解形式定义在实现类中,从而实现了零配置. 控制反转是一种通过描述(X ...
- 为了彻底搞懂 hashCode,我钻了一下 JDK 的源码
今天我们来谈谈 Java 中的 hashCode() 方法--通过源码的角度.众所周知,Java 是一门面向对象的编程语言,所有的类都会默认继承自 Object 类,而 Object 的中文意思就是& ...
- centos linux下配置固定ip,方便xshell连接
如何给centos linux设置固定ip地址,设置Linux系统的固定IP地址 首先wmware打开虚拟机 打开xshell6连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定,每次打 ...
- RHCSA_DAY04
软连接与硬连接 Linux中的链接文件类似于windows中的快捷方式 软连接特点:软连接可以跨分区,可以对目录进行链接,源文件删除后,链接文件不可用 软连接命令格式:ln -s 源文件路径 目标路 ...
- 4、关于numpy.random.seed()的使用说明
定义:seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差 ...
- 树莓派远程连接工具SSH使用教程
树莓派远程连接工具SSH使用教程 树莓派 背景故事 树莓派作为一款迷你小主机,大部分的使用场景都会用到远程调试,远程调试用到最多的方式一般就是VNC和SSH,SSH就是命令行型的远程方式,简单来说就是 ...
- VLAN-3 Hybrid接口应用
一.实验拓扑图 二.实验编址 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2.启动设备(全选) 3.首先用ping命令检查 ...
- VLAN-2 配置Trunk接口
一.实验拓扑图 二.实验编址 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2.启动设备(全选) 3.首先用ping命令检查 ...
- OAuth2 与OpenID的区别
OAuth2 OpenId OpenId是在OAuth2基础之上实现的 比OAuth2更简便 OAuth2需要在认证后 额外的去再调用用户信息的接口 才能获取用户信息 而OpenId直接伴随token ...
- 十九:JDBC操作事务
二.MySQL数据库中操作事务命令 2.1.开启事务(start transaction) 使用"start transaction"开启MySQL数据库的事务,如下所示: