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 相关文章推荐
JavaScript之自定义类型
May 04 Javascript
JavaScript的继承的封装介绍
Oct 15 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
jQuery中用on绑定事件时需注意的事项
Mar 19 Javascript
详解Vue 事件驱动和依赖追踪
Apr 22 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
原生javascript中this几种常见用法总结
Feb 24 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
PHP生成静态页面详解
2006/12/05 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Python matplotlib可视化实例解析
2020/06/01 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
关于毕业的广播稿
2014/01/10 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
Python中文纠错的简单实现
2021/07/07 Python
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python