my97显示双日历
大名鼎鼎的my97 日期选择控件,做开发的攻城狮应该或多或少都了解.
今天正好有个需求是现实双月份,而且截至日期要大于开始日期等需求,第一时间想到了my97控件.首先把最后的效果图放上来一睹为快!
我的页面首先有2个文本框,一个开始日期,一个结束日期
<input type=“text” id=“startTime” placeholder=“起始日期”/> - <input type=“text” id=“endTime” placeholder=“结束日期”/>
首先去 my97 官网下载控件,引用的时候最需要引用一个主文件即可,其他样式,图片等都不需考虑,脚本内部做了引用.
<script type=”text/javascript” src=”/DatePicker/WdatePicker.js”></script>
然后给 开始日期 结束日期 俩个文本框绑定DatePicker脚本.
$(“#startTime”).bind(“click”,function(){ WdatePicker({}); }); $(“#endTime”).bind(“click”,function(){ WdatePicker({}); });
OK,就是这样,俩个日历控件就轻松绑定了,但是我们上面提到的需求远远不满足,我们一个一个分析.
首先:我需要现实日历格式是 yyyy-MM-dd ,对应配置 WdatePicker({dateFmt:’yyyy-MM-dd’})
我需要日历默认从上个月显示 WdatePicker({dateFmt:’yyyy-MM-dd’,startDate:’%y-{%M-1}-%d’})
我需要日历现实双月份 WdatePicker({dateFmt:’yyyy-MM-dd’,startDate:’%y-{%M-1}-%d’,doubleCalendar:true}) 这样日历默认显示上个月和本月.
我需要开始日期不能大于结束日期 WdatePicker({dateFmt:’yyyy-MM-dd’,startDate:’%y-{%M-1}-%d’,doubleCalendar:true,maxDate:’#F{$dp.$D(\’endTime\’)||\’%y-%M-%d\’}'})
这里详细看下maxDate 值:#F{$dp.$D(\’endTime\’)||\’%y-%M-%d\’ 如果控件ID为 endTime 有值?那么起始日期值不能大于此值,如果没有值,则不能大于今天 \’%y-%M-%d\’ 表示今天.
对于结束日期,则最小值不能小于起始日期 ,配置如下: minDate:’#F{$dp.$D(\’startTime\’)}’ startTime 为起始日期文本框ID
最后我希望选择完开始日期后,自动弹出结束日期选择框 见配置项 onpicked:function(){endTime.click();} 这里的endTime 是结束日期文本框元素ID
最后这俩个文本框的click事件绑定如下:
$(function(){ $(“#startTime”).bind(“click”,function(){ WdatePicker({doubleCalendar:true,startDate:‘%y-{%M-1}-%d’,dateFmt:‘yyyy-MM-dd’,autoPickDate:true,maxDate:‘#F{$dp.$D(\’endTime\’)||\’%y-%M-%d\’}’,onpicked:function(){endTime.click();}}); }); $(“#endTime”).bind(“click”,function(){ WdatePicker({doubleCalendar:true,startDate:‘%y-{%M-1}-%d’,minDate:‘#F{$dp.$D(\’startTime\’)}’,maxDate:‘%y-%M-%d’,dateFmt:‘yyyy-MM-dd’,autoPickDate:true}); }); });
上面是最后完整代码,2013年 平安夜快乐.
End!