My97DatePicke一.简介1.简介目前的版本是:4.72.注意事项My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名My97DatePicker.htm是必须文件,不可删除各目录及文件的用途:WdatePicker.js配置文件,在调用的地方仅需使用该文件,可多个共存,以xx_WdatePicker.js方式命名config.js语言和皮肤配置文件,无需引入calendar.js日期库主文件,无需引入My97DatePicker.htm临时页面文件,不可删除目录lang存放语言文件,你可以根据需要清理或添加语言文件目录skin存放皮肤的相关文件,你可以根据需要清理或添加皮肤文件包当WdatePicker.js里的属性:$wdate=true时,在input里加上class=Wdate就会在选择框右边出现日期图标,如果您不喜欢这个样式,可以把class=Wdate去掉,另外也可以通过修改skin目录下的WdatePicker.css文件来修改样式3.支持的浏览器IE6.0+,Firefox2.0+,Chrome,Opera9.5+,Safari3.0+注意:IE8.0是完美支持的,如果你在IE8上使用遇到问题,请与我取得联系,务必附上能再现你的问题的纯HTML代码包二.功能及示例1.常规功能1.支持多种调用模式除了支持常规在input单击或获得焦点调用外,还支持使用其他的元素如:imgdiv等触发WdatePicker函数来调用弹出日期框示例1-1-1常规调用inputid=d11type=textonClick=WdatePicker()/示例1-1-2图标触发inputid=d12type=text/imgonclick=WdatePicker({el:'d12'})src=../skin/datePicker.gifwidth=16height=22align=absmiddle注意:只需要传入控件的id即可2.下拉,输入,导航选择日期年月时分秒输入框都具备以下三种特性1.通过导航图标选择2.直接使用键盘输入数字3.直接从弹出的下拉框中选择另:年份输入框有智能提示功能,当用户连续点击同一个导航按钮5次时,会自动弹出年份下拉框3.支持周显示可以通过配置isShowWeek属性决定是否限制周,并且在返回日期的时候还可以通过自带的自定义事件和API函数返回选择的周示例1-2-1周显示简单应用inputid=d121type=textonfocus=WdatePicker({isShowWeek:true})/注意:周算法参考的是ISO8601定义的方法,如果您对此有疑问,请详见:周算法选择(4.7新增)相关属性:whichDayIsfirstWeek周算法不同的地方有一些差异常见算法有三种1.ISO8601:规定第一个星期四为第一周,默认值:42.MSExcel:1月1日所在的周:可以填写:73.自己根据需要自定义,每年的第一个星期X作为第一周,可以填写:X(X可以是1-7之间任何一个数字)示例1-2-2利用onpicked事件把周赋值给另外的文本框您选择了第(W格式)周,另外您可以使用WW格式:周inputtype=textclass=Wdateid=d122onFocus=WdatePicker({isShowWeek:true,onpicked:function(){$dp.$('d122_1').value=$dp.cal.getP('W','W');$dp.$('d122_2').value=$dp.cal.getP('W','WW');}})/onpicked用法详见自定义事件$dp.cal.getP用法详见内置函数和属性4.只读开关,高亮周末功能设置readOnly属性true或false可指定日期框是否只读设置highLineWeekDay属性ture或false可指定是否高亮周末5.操作按钮自定义清空按钮和今天按钮,可以根据需要进行自定义,它们分别对应isShowClear和isShowToday默认值都是true示例1-5禁用清空功能最好把readOnly置为true,否则即使隐藏了清空按钮,用户依然可以在输入框里把值delete掉inputclass=Wdatetype=textid=d15onFocus=WdatePicker({isShowClear:false,readOnly:true})/6.自动选择显示位置当控件处在页面边界时,它会自动选择显示的位置,所以没有必要担心弹出框会被页面边界遮住的问题了.7.自定义弹出位置当控件处在页面边界时,它会自动选择显示的位置.此外你还可以使用position参数对弹出位置做调整.示例1-6通过position属性,自定义弹出位置使用positon属性指定,弹出日期的坐标为{left:100,top:50}inputclass=Wdatetype=textid=d16onfocus=WdatePicker({position:{left:100,top:50}})/position属性的详细用法详见属性表8.自定义星期的第一天(4.6新增)各个国家的习惯不同,有些喜欢以星期日作为第一天,有些以星期一作为第一天.相关属性:firstDayOfWeek:可设置0-6的任意一个数字,0:星期日1:星期一以此类推示例1-7以星期一作为第一天inputclass=Wdatetype=textid=d17onfocus=WdatePicker({firstDayOfWeek:1})/2.特色功能1.平面显示日期控件支持平面显示功能,只要设置一下eCont属性就可以把它当作日历来使用了,无需触发条件,直接显示在页面上示例2-1平面显示演示divid=div1/divscriptWdatePicker({eCont:'div1',onpicked:function(dp){alert('你选择的日期是:'+dp.cal.getDateStr())}})/script$dp.cal.getDateStr用法详见内置函数和属性2.支持多种容器除了可以将值返回给input以外,还可以通过配置el属性将值返回给其他的元素(如:textarea,div,span)等,带有innerHTML属性的HTML元素示例2-2将日期返回到span中2008-01-01代码:spanid=demospan2008-01-01/spanimgonClick=WdatePicker({el:'demospan'})src=../../My97DatePicker/skin/datePicker.gifwidth=16height=22align=absmiddlestyle=cursor:pointer/3.起始日期功能注意:日期格式必须与realDateFmt和realTimeFmt一致而不是与dateFmt一致有时在项目中需要选择生日之类的日期,而默认点开始日期都是当前日期,导致年份选择非常麻烦,你可以通过起始日期功能加上配置alwaysUseStartDate属性轻松解决此类问题示例2-3-1起始日期简单应用默认的起始日期为1980-05-01当日期框为空值时,将使用1980-05-01做为起始日期inputtype=textid=d221onFocus=WdatePicker({startDate:'1980-05-01'})/示例2-3-2alwaysUseStartDate属性应用默认的起始日期为1980-05-01当日期框无论是何值,始终使用1980-05-01做为起始日期inputtype=textid=d222onFocus=WdatePicker({startDate:'1980-05-01',alwaysUseStartDate:true})/示例2-3-3使用内置参数除了使用静态的日期值以外,还可以使用动态参数(如:%y,%M分别表示当前年和月)下例演示,年月日使用当年当月的1日,时分秒使用00:00:00作为起始时间inputtype=textid=d233onFocus=WdatePicker({startDate:'%y-%M-0100:00:00',dateFmt:'yyyy-MM-ddHH:mm:ss',alwaysUseStartDate:true})/4.自定义格式yMdHmswW分别代表年月日时分秒星期周,你可以任意组合这些元素来自定义你个性化的日期格式.日期格式表格式说明y将年份表示为最多两位数字。如果年份多于两位数,则结果中仅显示两位低位数。yy同上,如果小于两位数,前面补零。yyy将年份表示为三位数字。如果少于三位数,前面补零。yyyy将年份表示为四位数字。如果少于四位数,前面补零。M将月份表示为从1至12的数字MM同上,如果小于两位数,前面补零。MMM返回月份的缩写一月至十二月(英文状态下JantoDec)。MMMM返回月份的全称一月至十二月(英文状态下JanuarytoDecember)。d将月中日期表示为从1至31的数字。dd同上,如果小于两位数,前面补零。H将小时表示为从0至23的数字。HH同上,如果小于两位数,前面补零。m将分钟表示为从0至59的数字。mm同上,如果小于两位数,前面补零。s将秒表示为从0至59的数字。ss同上,如果小于两位数,前面补零。w返回星期对应的数字0(星期天)-6(星期六)。D返回星期的缩写一至六(英文状态下SuntoSat)。DD返回星期的全称星期一至星期六(英文状态下SundaytoSaturday)。W返回周对应的数字(1-53)。WW同上,如果小于两位数,前面补零(01-53)。示例格式字符串值yyyy-MM-ddHH:mm:ss2008-03-1219:20:00yy年M月08年3月yyyyMMdd20080312今天是:yyyy年M年dHH时mm分今天是:2008年3月12日19时20分H:m:s19:20:0y年8年MMMMd,yyyy三月12,2008示例2-4-1:年月日时分秒inputtype=textid=d241onfocus=WdatePicker({dateFmt:'yyyy年MM月dd日HH时mm分ss秒'})class=Wdatestyle=width:300px/注意:点两次才能选择日期的原因,详见autoPickDate属性示例2-4-2时分秒inputtype=textid=d242onfocus=WdatePicker({skin:'whyGreen',dateFmt:'H:mm:ss'})class=Wdate/注意:这里提前使用了皮肤(skin)属性,所以你会看到一个不同的皮肤,皮肤属性详见自定义和动态切换皮肤示例2-4-3年月inputtype=textid=d243onfocus=WdatePicker({skin:'whyGreen',dateFmt:'yyyy年MM月'})class=Wdate/示例2-4-4取得系统可识别的日期值(重要)类似于1999年7月5日这样的日期是不能够被系统识别的,他必须转换为能够识别的类型如1999-07-05真实的日期值是:inputid=d244type=textclass=Wdateonfocus=WdatePicker({dateFmt:'yyyy年M月d日',vel:'d244_2'})/inputid=d244_2type=text/注意:在实际应用中,一般会把vel指定为一个hidden控件,这里是为了把真实值展示出来,所以使用文本框关键属性:vel指定一个控件或控件的ID,必须具有value属性(如input),用于存储真实值(也就是realDateFmt