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 相关文章推荐
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 Javascript
javascript学习(一)构建自己的JS库
Jan 02 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
JS中的log对象获取以及debug的写法介绍
Mar 03 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
script标签属性用type还是language
Jan 21 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
angularJS实现动态添加,删除div方法
Feb 27 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
vue子传父关于.sync与$emit的实现
Nov 05 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 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程序之die调试法 快速解决错误
2009/09/17 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
python之django母板页面的使用
2018/07/03 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
flask应用部署到服务器的方法
2019/07/12 Python
Python箱型图处理离群点的例子
2019/12/09 Python
Python 内存管理机制全面分析
2021/01/16 Python
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
区域销售经理岗位职责
2015/04/02 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
pytorch 6 batch_train 批训练操作
2021/05/28 Python