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对象所有属性和方法的函数
Oct 16 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 Javascript
jquery 按键盘上的enter事件
May 11 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
javascript实现状态栏中文字动态显示的方法
Oct 20 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
Nov 23 Javascript
Angularjs中使用轮播图指令swiper
May 30 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
webpack-dev-server自动更新页面方法
Feb 22 Javascript
vue通过video.js解决m3u8视频播放格式的方法
Jul 30 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
解决layer.prompt无效的问题
2019/09/24 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
pandas实现选取特定索引的行
2018/04/20 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
经营管理策划方案
2014/05/22 职场文书
单位计划生育责任书
2015/05/09 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书