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 相关文章推荐
彻底搞懂JS无缝滚动代码
Jan 03 Javascript
Javascript中Eval函数的使用
Mar 23 Javascript
js页面跳转的常用方法整理
Oct 18 Javascript
论JavaScript模块化编程
Mar 07 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
Vue.js进行查询操作的实例详解
Aug 25 Javascript
React中jquery引用的实现方法
Sep 12 jQuery
在vue项目中,将juery设置为全局变量的方法
Sep 25 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
Vue封装全局过滤器Filters的步骤
Sep 16 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脚本的10个技巧(8)
2006/10/09 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
小程序自定义日历效果
2018/12/29 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
Python的函数的一些高阶特性
2015/04/27 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python文件写入write()的操作
2019/05/14 Python
python gdal安装与简单使用
2019/08/01 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
详解Python 循环嵌套
2020/07/09 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
现金会计岗位职责
2013/12/05 职场文书
秋季运动会稿件
2014/01/30 职场文书
淘宝活动总结范文
2014/06/26 职场文书
合同意向书范本
2014/07/30 职场文书
销售员试用期自我评价
2014/09/15 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
经济纠纷起诉状
2015/05/20 职场文书
2015年卫生局工作总结
2015/07/24 职场文书