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 相关文章推荐
javascript实现的图片切割多块效果实例
May 07 Javascript
$.extend 的一个小问题
Jun 18 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
微信小程序“摇一摇”的实例代码
Jul 20 Javascript
详解React中setState回调函数
Jun 14 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
如何让node运行es6模块文件及其原理详解
Dec 11 Javascript
Angular2 自定义表单验证器的实现方法
Dec 14 Javascript
使用vue重构资讯页面的实例代码解析
Nov 26 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
Nov 02 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
一些星际专用术语解释
2020/03/04 星际争霸
php实现的错误处理封装类实例
2017/06/20 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
二级域名转向类
2006/11/09 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
Python 中如何写注释
2020/08/28 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
高职助产应届生自荐信
2013/09/24 职场文书
建筑个人求职信范文
2014/01/25 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
PHP中->和=>的意思
2021/03/31 PHP
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers