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实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
AngularJS入门之动画
Jul 27 Javascript
实例解析Array和String方法
Dec 14 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
mui框架 页面无法滚动的解决方法(推荐)
Jan 25 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
利用JS实现一个同Excel表现的智能填充算法
Aug 13 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
javascript实现获取中文汉字拼音首字母
May 19 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python删除列表内容
2015/08/04 Python
Python 绘图和可视化详细介绍
2017/02/11 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
母亲80寿诞答谢词
2014/01/16 职场文书
高中学生评语大全
2014/04/25 职场文书
2015年酒店工作总结
2015/04/28 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
详解Redis基本命令与使用场景
2021/06/01 Redis