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 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
做好七件事帮你提升jQuery的性能
Feb 06 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
原生js开发的日历插件
Feb 04 Javascript
js获取隐藏元素的宽高
Feb 24 Javascript
快速了解Node中的Stream流是什么
Feb 13 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 Javascript
详解javascript脚本何时会被执行
Feb 05 Javascript
微信小程序实现聊天室功能
Jun 14 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加密解密的代码
2006/10/09 PHP
PHP用户指南-cookies部分
2006/10/09 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
JavaScript While 循环基础教程
2007/04/05 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
表扬稿格式范文
2015/01/16 职场文书
清洁工个人工作总结
2015/03/05 职场文书
运动会800米赞词
2015/07/22 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python