LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

JS日期选择控件,兼容IE6、IE7和FF

admin
2010年2月2日 23:47 本文热度 13218
前两年写的东东,不是很规范,可以满足一些基本的功能要求,简单的日历选择,使用浮动的Iframe可以挡住select,月份选择功能,兼容IE6、IE7和FF。忘了说了还有一个小Bug,在FF下年和月的的下拉箭头有问题,不知道怎么解决,如有高手请告知:
说明 前两年写的东东,不是很规范,可以满足一些基本的功能要求,简单的日历选择,使用浮动的Iframe可以挡住select,月份选择功能,兼容IE6、IE7和FF。
功能演示 <script language="javascript"> /********************** 日期选择 *************************** * @作者 : Enjoyd * @Email : [email]enjoyd@126.com[/email] * @OICQ : 5003427 '**************************************************************************/ var MonthDNum=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); var MonthText=new Array("","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"); var Calendar_obj,Calendar_obj2; //var WriteHead=1; document.write('<iframe style="position:absolute;width:206px;display:none;" name="divCalendar" id="divCalendar" frameborder="0" scrolling="no"></iframe>') /*头部信息CSS及JS函数*/ var HeadMsg=''+ ''+ 'var mdown,sy,ey,sm,em,HideSelect=1,CurrentSelect,year,month,day;function Scroll(str,key)'+ '{var Html="",s,e,obj,d;'+ 'if(key=="Y"){s=sy;e=ey;obj="SelectYearItem";d="年";}if(key=="M"){s=sm;e=em;obj="SelectMonthItem";d="";}'+ 'if(str=="Up"){s--;e--;}if(str=="Next"){s++;e++;}'+ 'if(key=="Y"){sy=s;ey=e;}if(key=="M"){if(s<1)s=1;if(s>6)s=6;if(e<7)e=7;if(e>12)e=12;sm=s;em=e;}'+ 'for(i=s;i<=e;i++){Html+=\'\'+parent.MonthText[i]:i+\',\'+month+\',\'+day+\');">\'+i;Html+=d+"";}'+ 'document.getElementById(obj).innerHTML=Html;}'+ 'function KeyDown(str){if(str==38){Scroll("Up",CurrentSelect);}if(str==40){Scroll("Next",CurrentSelect);}}'+ 'function ShowSelect(str,str2){HideSelect=0;HSelect();Scroll(\'\',str2);document.getElementById(str).style.display="block";CurrentSelect=str2}'+ 'function HSelect(){document.getElementById("SelectYear").style.display="none";document.getElementById("SelectMonth").style.display="none";}'+ 'function Calendar_GetDate(y,m,d)'+ '{var objEvent=window.event||arguments.callee.caller.arguments[0];'+ 'var srcElement=objEvent.srcElement;'+ 'if(!srcElement){srcElement=objEvent.target;}'+ 'if(srcElement.tagName=="A"){parent.Calendar_GetDate(y,m,srcElement.innerHTML);}}'+ 'document.onclick=function(){if(HideSelect){HSelect();}HideSelect=1;}'+ '
5
'+ '
6
'+ '
5
'+ '
6
'; function Calendar_Show(year,month,day) { var content; var date=new Date(); var DayNum=(IsLeapYear(year)&&month==2)?MonthDNum[month]+1:MonthDNum[month]; var date2=new Date(year,month-1,1) var start=date2.getDay(); var date2=null; var Trn=Math.ceil((DayNum+start)/7); var PrNum=1; content='year='+year+',month='+month+',day='+day+',sy=year-3;ey=year+3;'+ 'sm=(month-3<1)?1:(+month-3>6)?6:month-3;'+ 'em=(month+3<7)?7:(month+3>12)?12:month+3;
  • '+ '
  • '+year+'年
    6
    '+ '
    '+MonthText[month]+'
    6
    '; content+='
  • '+ '
  • ×
'+ '
'+ '
'+ '
'; //层定位 var Calendar=document.getElementById('divCalendar'); Calendar.style.height=66+21*Trn+'px'; //框架高度 divCalendar.document.open() divCalendar.document.write(HeadMsg+content); divCalendar.document.close() var p=Calendar_obj; var eT=0,eL=0,eH=0,dH=0,sT=0,eP=p while(p&&p.tagName!="BODY"){ eT+=p.offsetTop; //距窗口顶部距离 eL+=p.offsetLeft; //距窗口左边距离 p=p.offsetParent;} var eH=eP.offsetHeight; //输入框高度 var eW=eP.offsetWidth; //输入框宽度 var dH=Calendar.style.pixelHeight; //框架高度 Calendar.style.top=(eT+dH>document.body.scrollHeight&&eT-dH>=0)?eT-dH+'px':eT+eH+'px'; Calendar.style.left=(eL+206>document.body.scrollWidth&&eL-206+eW>=0)?eL-206+eW+'px':eL+'px'; setTimeout("document.getElementById('divCalendar').style.display=''",1); } /*是否润年*/ function IsLeapYear(y){ if(0==y%4&&((y%100!=0)||(y%400==0))){return true;} else{return false;} } function Calendar_Modif(y,m,d) { if(m<1){m=12;y=y-1;} if(m>12){m=1;y=y+1;} var num=(IsLeapYear(y)&&m==2)?MonthDNum[m]+1:MonthDNum[m]; if(d>num){d=num;} Calendar_Show(y,m,d) } function Calendar(obj,obj2) { var p=Calendar_obj=document.getElementById(obj); Calendar_obj2=document.getElementById(obj2); var re=/\d{4}-\d{1,2}-\d{1,2}/; var arr,Sdate; arr=re.exec(Calendar_obj.value); if(arr!=null){Sdate=Calendar_obj.value;} else{var mydate=new Date(); Sdate=mydate.getFullYear()+'-'+(mydate.getMonth()+1)+'-'+mydate.getDate();} Sdate=Sdate.split("-"); Calendar_Show(parseInt(Sdate[0]),parseInt(Sdate[1]),parseInt(Sdate[2])); } function Calendar_GetDate(y,m,d) { if(!Calendar_obj2||d!=0){ if(d>0){Calendar_obj.value=y+'-'+m+'-'+d;} else{ var objEvent=divCalendar.event||arguments.callee.caller.arguments[0]; var srcElement=objEvent.srcElement; if(!srcElement){srcElement=objEvent.target;} Calendar_obj.value=y+'-'+m+'-'+srcElement.innerHTML; } } else{ if(IsLeapYear(y)&&m==2){num=MonthDNum[m]+1;} else{num=MonthDNum[m];} Calendar_obj.value=y+'-'+m+'-1'; Calendar_obj2.value=y+'-'+m+'-'+num; } Calendar_hide();} function Calendar_hide() {document.getElementById("divCalendar").style.display="none";} document.onclick=Calendar_hide; </script> 时间:
提示:您可以先修改部分代码再运行

该文章在 2010/2/2 23:47:37 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号