extjs 时间范围选择自动判断的实现代码


Posted in Javascript onJune 24, 2014

extjs中 有时需要选择一个日期范围,需要自动判断,选择的开始日期不能大于结束日期,或结束日期不能小于开始日期,实现的代码如下

效果图:
extjs 时间范围选择自动判断的实现代码
从上图可以看到,当选择了一个开始时间后,会自动限制结束时间的选择范围,实现两个日期选择器的联动.

代码如下:

首先定义联动处理函数:

Ext.apply(Ext.form.field.VTypes, { 
daterange: function (val, field) { 
var date = field.parseDate(val); 

if (!date) { 
return false; 
} 
if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) { 
var start = field.up('grid').down('#' + field.startDateField); 
start.setMaxValue(date); 
start.validate(); 
this.dateRangeMax = date; 
} 
else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) { 
var end = field.up('grid').down('#' + field.endDateField); 
end.setMinValue(date); 
end.validate(); 
this.dateRangeMin = date; 
} 
return true; 
}, 
daterangeText: '开始日期必须小于结束日期' 
}); 
Ext.tip.QuickTipManager.init();

在tbar,bbar或form中的items中增加:

{ 
xtype: 'datefield', 
fieldLabel: '时间范围 开始', 
name: 'startdt', 
id: 'startdt', 
vtype: 'daterange', 
endDateField: 'enddt', 
format: 'Y-m-d', 
width: 220, 
labelWidth: 90, 
msgTarget: 'side', 
autoFitErrors: false 
}, { 
xtype: 'datefield', 
fieldLabel: '结束', 
name: 'enddt', 
id: 'enddt', 
vtype: 'daterange', 
startDateField: 'startdt', 
format: 'Y-m-d', 
width: 170, 
labelWidth: 40, 
msgTarget: 'side', 
autoFitErrors: false 
}, { xtype: 'button', 
text: '查询', 
iconCls: 'fljs', 
handler: function () { ...

即可实现以上效果 本代码复制在extjs4.1.1中运行

Javascript 相关文章推荐
DOM精简教程
Oct 03 Javascript
Javascript 解疑
Nov 11 Javascript
jQuery的deferred对象使用详解
Aug 20 Javascript
javascript 全选与全取消功能的实现代码
Dec 23 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
Nov 21 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
May 17 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 Javascript
vue中使用腾讯云Im的示例
Oct 23 Javascript
搭建pomelo 开发环境
Jun 24 #Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 #Javascript
Node.js中require的工作原理浅析
Jun 24 #Javascript
angularjs实现与服务器交互分享
Jun 24 #Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 #Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 #Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 #Javascript
You might like
无限级别菜单的实现
2006/10/09 PHP
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP session有效期问题
2009/04/26 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
Python pandas如何向excel添加数据
2020/05/22 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
孝老爱亲模范事迹
2014/01/24 职场文书
会计员岗位职责
2014/03/15 职场文书
安全责任书范本
2014/04/15 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
导游词之日本富士山
2020/01/06 职场文书
python内置进制转换函数的操作
2021/06/02 Python
详细介绍python操作RabbitMq
2022/04/12 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS