My97DatePicker的使用

今天项目中看到了一个很简洁,操作也很方便的时间控件,顺便收藏一下。

1.

My97DatePicker是一款非常灵活好用的日期控件。使用非常简单。 

1、下载My97DatePicker组件包 

下载地址:http://download.csdn.net/detail/emoven/8249073

2、在页面中引入该组件js文件: 

    <script type="text/JavaScript" src="My97DatePicker/WdatePicker.js"></script> 

3、例子

复制代码
 1     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
 2     <%@ taglib prefix="s"  uri="/struts-tags"%>  
 3       
 4     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
 5     <html>  
 6       <head>  
 7         <title>My97DatePicker日期控件使用</title>  
 8       </head>  
 9       <body>  
10         <center>  
11             <h2>My97DatePicker日期控件的使用</h2>  
12         </center>  
13                 基本用法:  
14         <input id="" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true})" /><br><br>  
15                 
16                 只能选择今天以前的日期:  
17         <input id="" class="Wdate" onfocus="WdatePicker({readOnly:true,maxDate:'%y-%M-%d'})" /><br><br>         
18                  
19                使用运算表达式 只能选择 20小时前 至 30小时后 的日期    
20         <input id="" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'%y-%M-%d {%H-20}:%m:%s',maxDate:'%y-%M-%d {%H+30}:%m:%s'})" /><br><br>              
21                   
22                 开始,结束日期:<!-- $dp.$ 相当于 document.getElementById 函数. -->  
23         <input id="sdate" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true,maxDate:'#F{$dp.$D(\'edate\')}'})" />  
24         -  
25         <input id="edate" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true,minDate:'#F{$dp.$D(\'sdate\')}',startDate:'#F{$dp.$D(\'sdate\',{d:+1})}'})" /><br><br>  
26            
27       </body>  
28       <script type="text/javascript" src="/js/My97DatePicker/WdatePicker.js"></script>  
29     </html>  
复制代码

4.如需修改配置信息,只需WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true,maxDate:'#F{$dp.$D(\'edate\')}'})" 加上相关配置信息即可

4、常用的配置信息。

配置信息主要在onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true})" 的 WdatePicker 方法的 { } 对象中定义。
常用的配置信息在 WdatePicker.js 文件中定义了。

复制代码
 1     var $dp,WdatePicker;(function(){var _={  
 2     $wdate:true,  
 3     $dpPath:"",  
 4     $crossFrame:true,  
 5     doubleCalendar:false, //是否双月日历  
 6     autoUpdateOnChanged:false,  
 7     position:{}, //位置如:position:{left:100,top:50}  
 8     lang:"auto",  
 9     skin:"default", //皮肤  
10     dateFmt:"yyyy-MM-dd", //日期格式  
11     realDateFmt:"yyyy-MM-dd",  
12     realTimeFmt:"HH:mm:ss",  
13     realFullFmt:"%Date %Time",  
14     minDate:"1900-01-01 00:00:00", //最小日期  
15     maxDate:"2099-12-31 23:59:59", //最大日期  
16     startDate:"", //起始日期  
17     alwaysUseStartDate:false, //当日期框无论是何值,始终使用 startDate 做为起始日期  
18     yearOffset:1911,  
19     firstDayOfWeek:0, //自定义星期的第一天  
20     isShowWeek:false, //是否显示周  
21     highLineWeekDay:true, //高亮周日  
22     isShowClear:true, //是否显示清空  
23     isShowToday:true, //是否显示今天  
24     isShowOK:true,  //是否显示OK  
25     isShowOthers:true,  
26     readOnly:false, //是否只读  
27     qsEnabled:true,  
28     errDealMode:0, //自动纠错功能  
29     //0 在输入错误日期时,会先提示   
30     //1 在输入错误日期时,自动恢复前一次正确的值  
31     //2 在输入错误日期时,不做提示和更改,只是做一个标记,但此时日期框不会马上隐藏  
32     autoPickDate:null, //点两次才能选择日期的原因  
33     //为false时 点日期的时候不自动输入,而是要通过确定才能输入  
34     //为true时 即点击日期即可返回日期值  
35     //为null时(推荐使用) 如果有时间置为false 否则置为true  
36     specialDates:null, //特殊日期  
37     specialDays:null,  //特殊天  
38     disabledDates:null, //无效日期 如:disabledDates:['5$']  
39     disabledDays:null, //无效天 如:disabledDays:[6]  
40     opposite:false, //有效日期  
复制代码
  • 利用onclick或onfocus事件触发
<input id="d11" type="text" onClick="WdatePicker()"/>
示例1-1-2 图标触发


<input id="d12" type="text"/>
<img onclick="WdatePicker({el:'d12'})" src="../skin/datePicker.gif" width="16" height="22" align="absmiddle">
注意:只需要传入控件的id即可  el:绑定控件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 实际的格式与显示的格式,多用于传入后台的格式与显示不符的情况
<input id="d244" type="text" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy年M月d日',vel:'d244_2'})"/>
<input id="d244_2" type="text" />

注意:在实际应用中,一般会把vel指定为一个hidden控件,这里是为了把真实值展示出来,所以使用文本框
关键属性: vel 指定一个控件或控件的ID,必须具有value属性(如input),用于存储真实值(也就是realDateFmt和realTimeFmt格式化后的值)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 日期开始时间不大于结束时间等限制
<input type="text" class="Wdate" id="d4321" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4322\');}'})"/>
<input type="text" class="Wdate" id="d4322" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4321\');}'})"/>
注意:
两个日期的日期格式必须相同
$dp.$ 相当于 document.getElementById 函数.

使用 $dp.$D 函数 可以将日期框中的值,加上定义的日期差量:
两个参数: id={字符类型}需要处理的文本框的id值 , obj={对象类型}日期差量
日期差量用法:#F{$dp.$D(\'d4321\',{d:3});}
属性y,M,d,H,m,s分别代表年月日时分秒
如 
为空时,表示直接取值,不做差量(示例4-3-1中的参数就是空的)
{M:5,d:7} 表示 五个月零7天
{y:1,d:-3} 表示 1年少3天
{d:1,H:1} 表示一天多1小时
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • onpicked函数

此处是在工作时遇到的,要求开始时间选择之后,结束时间默认填写为当前时间加1天的0点。

<input id="stTime" class="Wdate"  
onfocus="var ed=$dp.$('endTime');
        WdatePicker({dateFmt:\'yyyy-MM-dd HH:mm:ss\',
        onpicked:function(dp){
        if(ed.value == null|| ed.value==\'\'){
            //changeDate做时间加一天的处理,此处不写了。。。
            ed.value=changeDate(dat);
        }
        //此处最好联动的调用结束时间的控件,由于My97点击控件时需按两下才能选中,
        //如果不调的话,日历不消失。
        ed.focus();
        })" />
<input id="endTime" class="Wdate" onfocus="
        WdatePicker(
            {dateFmt:\'yyyy-MM-dd HH:mm:ss\',
            realFmt:\'yyyy-MM-dd HH:mm:ss\',
            minDate:\'#F{$dp.$D(stTime)}\'})" />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

其中 onpicked后的函数可单独提出写。


猜你喜欢

转载自blog.csdn.net/w_dongqiang/article/details/80704323