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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
详解ES6中的三种异步解决方案
Jun 28 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
JavaScript函数定义方法实例详解
Mar 05 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 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在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
javascript时区函数介绍
2012/09/14 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
javascript如何写热点图
2015/12/08 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python字典的值可以修改吗
2020/06/29 Python
python中id函数运行方式
2020/07/03 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
五好党支部事迹材料
2014/02/06 职场文书
IT工程师岗位职责
2014/07/04 职场文书
关于美容院的活动方案
2014/08/14 职场文书
处级干部考察材料
2014/12/24 职场文书
资料员岗位职责
2015/02/10 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
2015最新民情日记范文
2015/06/26 职场文书
升学宴学生致辞
2015/07/27 职场文书
赞美教师的句子
2019/09/02 职场文书