400 186 1886
首页
OA教程
经验分享
安装指引
工作流
ERP教程
经验分享
销售管理
采购管理
生产管理
仓库管理
工程管理
品质管理
财务管理
模切知识交流
经验分享
技术文档
PMS教程
CRM教程
技术文档
其他文档
MIS教程
MAS教程
EBR教程
企业管理
微信好文
读书沙龙
无题
网站管理员
JS日期选择控件,兼容IE6、IE7和FF
当前位置:
点晴教程
→
知识管理交流
→
『 技术文档交流 』
admin
2010年2月2日 23:47
本文热度 13218
×
扫码分享
扫码后分享到微信或QQ
前两年写的东东,不是很规范,可以满足一些基本的功能要求,简单的日历选择,使用浮动的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+='
'+ '
×
'+ '
'+ '
«
'+ '
‹
'; if(Calendar_obj2){content+='
本月
'+ '
本日
';} else{content+='
选择本日
';} content+='
›
'+ '
»
'+ '
'+ '
日
一
二
三
四
五
六
'+ '
'; var date=null; if(start>0){content+='
';} for(i=1;i<=DayNum;i++) { content+='
'+PrNum+'
'; PrNum++; } 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> 时间:
至
可挡住Select
提示:您可以先修改部分代码再运行
该文章在 2010/2/2 23:47:37 编辑过
关键字查询
选择控件
选择
控件
ie
日期
相关文章
正在查询...
Copyright 2010-2026
ClickSun
All Rights Reserved
粤ICP备13012886号-2
粤公网安备44030602007207号