关于一个带有CheckBox 多选日期的日历

阿土伯土 2004-06-17 12:16:41
calendarBox.js

document.write('<iframe id=CalFrame name=CalFrame frameborder=0 src=calendarBox.htm style=display:none;position:absolute;z-index:100></iframe>');
document.onclick=hideCalendar;

function showCalendar(sImg,bOpenBound,sFld1,sFld2,sCallback)
{
var fld1,fld2;
var cf=document.getElementById("CalFrame");
var wcf=window.frames.CalFrame;
var oImg=document.getElementById(sImg);
if(!oImg){alert("控制对象不存在!");return;}
if(!sFld1){alert("输入控件未指定!");return;}
fld1=document.getElementById(sFld1);
if(!fld1){alert("输入控件不存在!");return;}
if(fld1.tagName!="INPUT"||fld1.type!="text"){alert("输入控件类型错误!");return;}
if(sFld2)
{
fld2=document.getElementById(sFld2);
if(!fld2){alert("参考控件不存在!");return;}
if(fld2.tagName!="INPUT"||fld2.type!="text"){alert("参考控件类型错误!");return;}
}
if(!wcf.bCalLoaded){alert("日历未成功装载!请刷新页面!");return;}
if(cf.style.display=="block"){cf.style.display="none";return;}

var eT=0,eL=0,p=oImg;
var sT=document.body.scrollTop,sL=document.body.scrollLeft;
var eH=oImg.height,eW=oImg.width;
while(p&&p.tagName!="BODY"){eT+=p.offsetTop;eL+=p.offsetLeft;p=p.offsetParent;}
cf.style.top=(document.body.clientHeight-(eT-sT)-eH>=cf.height)?eT+eH:eT-cf.height;
cf.style.left=(document.body.clientWidth-(eL-sL)>=cf.width)?eL:eL+eW-cf.width;
cf.style.display="block";

wcf.openbound=bOpenBound;
wcf.fld1=fld1;
wcf.fld2=fld2;
wcf.callback=sCallback;
wcf.initCalendar();
}
function hideCalendar()
{
var cf=document.getElementById("CalFrame");
cf.style.display="none";
}







calendarBox.htm

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type=text/css>
td{font-size:12;font-home:arial;text-align:center}
td.dt{font-size:11;font-home:arial;text-align:left}
a{color:blue}
a:hover{color:red}
a.bt{color:#888888}
</style>
<script language=javascript>
<!--//
var str='',i,j,yy,mm,openbound,callback;
var fld1,fld2;
var wp=window.parent;
var cf=wp.document.getElementById("CalFrame");
var fld,curday,today=new Date();
today.setHours(0);today.setMinutes(0);today.setSeconds(0);today.setMilliseconds(0);
//var lastyear=today.getYear(),lastmonth=today.getMonth();
function parseDate(s)
{
var reg=new RegExp("[^0-9-]","")
if(s.search(reg)>=0)return today;
var ss=s.split("-");
if(ss.length!=3)return today;
if(isNaN(ss[0])||isNaN(ss[1])||isNaN(ss[2]))return today;
return new Date(parseInt(ss[0]),parseInt(ss[1])-1,parseInt(ss[2]));
}
function resizeCalendar(){cf.width=242;cf.height=202;}
function initCalendar()
{
if(fld1&&fld1.value.length>0){curday=parseDate(fld1.value);}
else if(fld2&&fld2.value.length>0){curday=parseDate(fld2.value);}
else curday=today;
drawCalendar(curday.getFullYear(),curday.getMonth());
}
function drawCalendar(y,m)
{
var x=new Date(y,m,1),mv=x.getDay(),d=x.getDate(),de;
yy=x.getFullYear();mm=x.getMonth();
document.getElementById("yyyymm").innerHTML=yy+"."+(mm+1>9?mm+1:"0"+(mm+1));
for(var i=1;i<=mv;i++)
{
de=document.getElementById("d"+i);
de.innerHTML="";
de.bgColor="";
}
while(x.getMonth()==mm)
{
de=document.getElementById("d"+(d+mv));
if(x.getTime()==curday.getTime())
de.bgColor="#dddddd";
else
de.bgColor="white";
if(x.getTime()==today.getTime())
de.innerHTML="<input type=checkbox name=CalendarBox value="+d+"><a href=javascript:setDate("+d+");><font color=red>"+d+"</font></a>";
else if(x.getTime()<today.getTime())
if(openbound){de.innerHTML="<input type=checkbox name=CalendarBox value="+d+"><a href=javascript:setDate("+d+"); class=bt>"+d+"</a>";}
else{de.innerHTML="<input type=checkbox name=CalendarBox value="+d+" disabled><font color=#888888>"+d+"</font>";}
else
de.innerHTML="<input type=checkbox name=CalendarBox value="+d+"><a href=javascript:setDate("+d+");>"+d+"</a>";
x.setDate(++d);
}
while(d+mv<=42)
{
de=document.getElementById("d"+(d+mv));
de.innerHTML="";
de.bgColor="";
d++;
}
}
function setDate(d)
{
var dstr=yy+"-"+(mm+1)+"-"+d;
if(callback&&callback.length>0){eval("wp."+callback+"(\""+dstr+"\")");}
else{fld1.value=dstr;}
wp.hideCalendar();
}
//-->
</script>
</head>

<body topmargin=0 leftmargin=0 bottommargin=0 rightmargin=0 onload="resizeCalendar();">
<table id=tbl0 bgcolor=#336699 border=0 cellpadding=1 cellspacing=0><tr><td>
<table width=100% border=0 cellpadding=2 cellspacing=1 bgcolor=white>
<tr bgcolor=gray>
<td width=16 id=prev><a href=javascript:drawCalendar(yy,mm-1);><img src=/Images/prev.gif border=0 width="16" height="16"></a></td>
<td width=99% id=yyyymm style=font-size:11;color:white></td>
<td width=16 id=next><a href=javascript:drawCalendar(yy,mm+1);><img src=/Images/next.gif border=0 width="16" height="16"></a></td>
</tr>
</table>
<table width=142 border=0 bgcolor=white cellpadding=0 cellspacing=2>
<tr height=18><td width=18><font color=red>日</font></td><td width=18>一</td><td width=18>二</td><td width=18>三</td><td width=18>四</td><td width=18>五</td><td width=18><font color=green>六</font></td></tr>
<tr height=1><td colspan=7 bgcolor=gray></td></tr>
<script language=javascript>
<!--//
for(i=0;i<6;i++)
{
str+="<tr height=18>";
for(j=1;j<=7;j++)str+="<td id=d"+(i*7+j)+" class=dt></td>";
str+="</tr>";
}
document.write(str);
//-->
</script>
<tr height=1><td colspan=7 bgcolor=gray></td></tr>
<tr height=18><td colspan=7><a href="javascript:alert(document.all.CalendarBox.value);">提交</font></a> <a href="javascript:wp.hideCalendar();">关闭</font></a></td></tr>
</table>
</td></tr></table>
<script language=javascript>
<!--//
var bCalLoaded=true;
//-->
</script>

</body>
</html>


test.htm

<script language="JavaScript" src="calendarBox.js"></script>
<input name="outDate" type="text" size="6" id="outDate">
<A onclick=event.cancelBubble=true; href="javascript:showCalendar('dimg1',false,'outDate')"><img src="/Hotel/Images/calendar.gif" width="34" height="21" border="0" align="absmiddle" id=dimg1></A>









问题:
请问如何将各个日期提交到同一输入框
例如:将 2004-6-7 和 2004-7-8 两个日期或更多日期提交到输入框
...全文
627 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zldjjf50 2010-06-09
  • 打赏
  • 举报
回复
什么东西? 太长了 一百行就能完成的
方舟 2004-06-22
  • 打赏
  • 举报
回复
你的代码很难以上功能
建议你开始就弹出12个月份的日期给它选择
阿土伯土 2004-06-22
  • 打赏
  • 举报
回复
啊,12 个月的日期! 那整个屏幕岂不会变的非常之大!
阿土伯土 2004-06-21
  • 打赏
  • 举报
回复
谢谢PoPoTang(PoPoTang) 。你的函数管用,可是,如果退回去选择另外一个月份,再返回来,那么刚才所选的日历天数就不见了。

另外,还有,如果已知已经选择了 10个天数在这个Input输入框,如果要修改这些日期,用什么方式比较好。

阿土伯土 2004-06-19
  • 打赏
  • 举报
回复
52juanjuan(Fibona) 的没有带CheckBox
方舟 2004-06-18
  • 打赏
  • 举报
回复
碰巧要搞类似东东,楼主的代码省了我时间,可惜无图片:<
写个循环取getValue函数,可以了,
var theValue=" ";
for (i=0;i<CalendarBox.length;i++){
if(CalendarBox[i].checked) {
theValue=setDate(CalendarBox[i].value)+","+theValue;
}
}

fld1.value=theValue;
阿土伯土 2004-06-18
  • 打赏
  • 举报
回复
非常感谢您的回复,能否把您的代码大包成一个RAR给俺吗,多谢。
kingdomzhf 2004-06-17
  • 打赏
  • 举报
回复
这么长
52juanjuan 2004-06-17
  • 打赏
  • 举报
回复
楼主的我看了一下认为结构不太完整所以没有直接修改,而是用了一个自己的
52juanjuan 2004-06-17
  • 打赏
  • 举报
回复
<SCRIPT>
<!--
var g_fCalLoaded=false;
var da=document.all;
var wp=window.parent;
var cf=wp.document.all.CalFrame;
var bdc=da.BKIMG1.children;
var dMin;
var dMax;
var XOff=2;
var YOff=1;
var XSize=20;
var YSize=20;
var g_dC=-1;
var g_mC=-1;
var g_yC=-1;
var g_dI=-1;
var g_mI=-1;
var g_yI=-1;

function DoLoad()
{
for(i=0;i<7;i++)
{
for(j=0;j<6;j++)
{
var t=j*7+i;
bdc[t].day=t+1;
bdc[t].onclick=BC;
bdc[t].className="dt";
bdc[t].style.left=da.MonthImg.offsetLeft+XOff+XSize*i-1;
bdc[t].style.top=da.MonthImg.offsetTop+YOff+YSize*j;
}
}
}

function TC()
{
if(event.srcElement.className=="dt")
{
var dt=new Date();
wp.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
cf.style.display="none";
}
event.cancelBubble = true;
}

function BC()
{
if(event.srcElement.className=="dt")
{
var iDay = event.srcElement.day;
iDay-=GetDOW(1,g_mC,g_yC);
wp.SetDate(iDay,g_mC,g_yC);
cf.style.display="none";
}
event.cancelBubble=true;
}

function CC()
{
cf.style.display="none";
}

function NC()
{
if(g_mC==12)
SetDate(g_dC,1,g_yC+1);
else
SetDate(g_dC,g_mC+1,g_yC);
}

function PC()
{
if(g_mC==1)
SetDate(g_dC,12,g_yC-1);
else
SetDate(g_dC,g_mC-1,g_yC);
}

function SetInputDate(day,month,year)
{
g_dI = day;
g_mI = month;
g_yI = year;
}

function FmtTitle(str)
{
var r=str.charAt(0);
for(i=1;i<str.length;i++)
r=r+" "+str.charAt(i);
return r;
}

function SetMinMax(min,max)
{
dMin=min;
dMax=max;
}
function SetDate(day, month, year)
{
da.WeekImg.src="week"+wp.GetDowStart()+".gif";
da.MonthImg.src="w"+GetDOW(1,month,year)+"d"+GetMonthCount(month,year)+".gif";
da.MonthTitle.innerHTML=FmtTitle(rgMN[month-1]);
da.YearTitle.innerHTML=FmtTitle(year.toString());
var dt=new Date();
var s,n,v,d;
d="none";
if(month==dt.getMonth()+1&&year==dt.getFullYear())
{
iBox=dt.getDate()+GetDOW(1,dt.getMonth()+1,dt.getFullYear())-1;

if(ValidDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear()))
n="dt";
else
n="bdt";

da.Today.className=n;
da.Today.style.left=bdc[iBox].style.left;
da.Today.style.top=bdc[iBox].style.top;
d="block";
}
da.Today.style.display=d;
d="none";

if(-1!=g_dI&&month==g_mI&&year==g_yI)
{
iBox=g_dI+GetDOW(1,g_mI,g_yI)-1;
da.SelDate.style.left=bdc[iBox].style.left;
da.SelDate.style.top=bdc[iBox].style.top;
d="block";
}
da.SelDate.style.display=d;
var i=0;
var iMin=GetDOW(1,month,year);
var iMax=GetMonthCount(month,year)+GetDOW(1,month,year);
for(;i<iMin;i++)
{
bdc[i].src="nodate.gif";
bdc[i].className="ndt";
}
if(month==(dMin.getMonth()+1))
{
iBox=dMin.getDate()+GetDOW(1,dMin.getMonth()+1,dMin.getFullYear())-1;
for(;i<iMax;i++)
{
if(i<iBox)
{
s="date.gif";
n="dt";
}
bdc[i].src=s;
bdc[i].className=n;
}
}
else if(month==(dMax.getMonth()+1))
{
iBox=dMax.getDate()+GetDOW(1,dMax.getMonth()+1,dMax.getFullYear())-1;
for(;i<iMax;i++)
{
if(i<iBox+1)
{
s="date.gif";n="dt";
}
else
{
s="date.gif";
n="dt";
}
bdc[i].src=s;
bdc[i].className=n;
}
}
else
{
for(;i<iMax;i++)
{
bdc[i].src="date.gif";
bdc[i].className="dt";
}
}

for(;i<42;i++)
{
bdc[i].src="nodate.gif";
bdc[i].className="ndt";
}

g_dC=day;
g_mC=month;
g_yC=year;
}

function ValidDate(day,month,year)
{
if( year<dMin.getFullYear() || (year==dMin.getFullYear()&&month<(dMin.getMonth()+1)) || (year==dMin.getFullYear()&&month==(dMin.getMonth()+1)&&day<dMin.getDate()) )
return false;
else if( year>dMax.getFullYear() || (year==dMax.getFullYear()&&month>(dMax.getMonth()+1)) || (year==dMax.getFullYear()&&month==(dMax.getMonth()+1)&&day>dMax.getDate()) )
return false;
else
return true;
}

function GetMonthCount(month,year)
{
var c=rgMC[month-1];
if((2==month)&&IsLeapYear(year))
c++;
return c;
}

function IsLeapYear(year)
{
return( 0==year%4 && ((year%100!=0)||(year%400==0)) );
}

function GetDOW(day,month,year)
{
var dt=new Date(year,month-1,day);
return (dt.getDay()+(7-wp.GetDowStart()))%7;
}

function cityname(citys)
{
return true;
}

var rgMN=new Array(12);
rgMN[0]="1";
rgMN[1]="2";
rgMN[2]="3";
rgMN[3]="4";
rgMN[4]="5";
rgMN[5]="6";
rgMN[6]="7";
rgMN[7]="8";
rgMN[8]="9";
rgMN[9]="10";
rgMN[10]="11";
rgMN[11]="12";
var rgMC=new Array(12);
rgMC[0]=31;
rgMC[1]=28;
rgMC[2]=31;
rgMC[3]=30;
rgMC[4]=31;
rgMC[5]=30;
rgMC[6]=31;
rgMC[7]=31;
rgMC[8]=30;
rgMC[9]=31;
rgMC[10]=30;
rgMC[11]=31;
g_fCalLoaded=true;
//-->
</SCRIPT>
</BODY>
</HTML>
52juanjuan 2004-06-17
  • 打赏
  • 举报
回复
第二个文件显示日历,以便进行日期的选择取名为calendar.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE>
.pop
{
FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 宋体, "Arial"
}
.hdr
{
BACKGROUND: #ffffdd
}
.hdrA
{
CURSOR: hand
}
.ndt
{
WIDTH: 19px; POSITION: absolute; HEIGHT: 19px
}
.bdt
{
WIDTH: 19px; POSITION: absolute; HEIGHT: 19px
}
.dt
{
WIDTH: 19px; CURSOR: hand; POSITION: absolute; HEIGHT: 19px
}
.sdt
{
WIDTH: 19px; POSITION: absolute; HEIGHT: 19px
}
</STYLE>

<META content="MSHTML 5.50.4522.1800" name=GENERATOR>
</HEAD>

<BODY text=#000000 vLink=#990000 aLink=#990000 link=#990000 bgColor=#ffffff onload=DoLoad()>
<BASEFONT face="Arial,Helvetica,Geneva,Swiss,Sans Serif">
<TABLE style="BORDER-RIGHT: #111177 1px solid; BORDER-TOP: #111177 1px solid; BACKGROUND: white; FONT: 8pt arial; BORDER-LEFT: #111177 1px solid; BORDER-BOTTOM: #111177 1px solid" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD height=20>
<TABLE style="FONT: 8pt arial" height=20 cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD class=hdrA id=PrevDiv width=20>
<IMG id=Prev onclick=PC(); height=21 alt="Show Previous Month" src="prev.gif" width=20 align=absMiddle>
</TD>
<TD class=hdr align=middle width=101>
<SPAN id=YearTitle></SPAN> . 
<SPAN id=MonthTitle></SPAN>
</TD>
<TD class=hdrA id=NextDiv width=20>
<IMG id=Next onclick=NC(); height=21 alt="Show Next Month" src="next.gif" width=20 align=absMiddle>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>

<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD><IMG id=WeekImg height=20 src="week0.gif"
width=141>
</TD>
</TR>
<TR>
<TD style="POSITION: relative" align=middle>
<img class=sdt id=SelDate style="DISPLAY: none; background-color: #99FFFF; layer-background-color: #99FFFF; border: 1px none #000000" height=19 src="seldate.gif" width=19>
<img id=MonthImg style="LEFT: 0px; POSITION: relative; TOP: 0px" height=121 src="nodate.gif" width=141>
<DIV id=BKIMG1>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
<IMG height=19 src="date.gif" width=19>
</DIV>
<IMG class=ndt id=Today style="DISPLAY: none" onclick=TC() height=19 src="ring.gif" width=19>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR>
<TD align=right height=20>
<A class=pop href="javascript:CC()">Close Window</A>
</TD>
</TR>
</TBODY>
</TABLE>


52juanjuan 2004-06-17
  • 打赏
  • 举报
回复

function show(idLayer,idParent)
{
cLayer=bVer.dom?document.getElementById(idLayer).style:bVer.ie4?document.all[idLayer].style:bVer.ns4?idParent?document[idParent].document[idLayer]:document[idLayer]:0;
cLayer.display='block';
divLinksForm=(ns4)?document.divLinks.document.divLinks:document.divLinks;
var d=document.Wiz;

if (idLayer=='car')
{
AttB(d.CKind);
AttB(d.Ctime1);
AttB(d.Ctime2);
d.srch[1].status='true';
}
else
if (idLayer=='hot')
{
AttB(d.Hcadt);
AttB(d.Hckid);
d.srch[0].status='true';
}
else
{
AttB(d.FcAdu);
d.srch[2].status='true';
/*if (idParent!='flt' && d.opts[1].checked) hide('dts','flt');*/
}
}

function hide(idLayer,idParent)
{
cLayer=bVer.dom?document.getElementById(idLayer).style:bVer.ie4?document.all[idLayer].style:bVer.ns4?idParent?document[idParent].document[idLayer]:document[idLayer]:0;
var d=document.Wiz;

if(idLayer!='flt')
AttN(d.FcAdu);

AttN(d.Hcadt);
AttN(d.Hckid);
AttN(d.CKind);
AttN(d.Ctime1);
AttN(d.Ctime2);
cLayer.display='none'
}
</script>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<IFRAME id=CalFrame style="DISPLAY: none; Z-INDEX: 100; WIDTH: 148px; POSITION: absolute; HEIGHT: 194px; left: 581px; top: 66px" marginWidth=0 marginHeight=0 src="./calendar.htm" frameBorder=0 noResize scrolling=no>
</IFRAME>
<table align="center" width="70%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#CCCCCC" bordercolordark="#FFFFFF" class="text">
<form name=querytrace method="POST" action="trace_list.html">

<tr>
<td width="33%" ><strong>Action Time</strong></td>
<td width="67%">
<strong>From:</strong><input type="text" name="ActionTime1" size="11" value="<?=date('Y-m-d',mktime(0,0,0,1,1,2001))?>">
<A onclick=event.cancelBubble=true; href="javascript:ShowCalendar(document.querytrace.dimg1,document.querytrace.ActionTime1,null,0,330)">
<IMG id="dimg1" height=21 src="/admin/js/datesel/button.gif" width=34 align=absMiddle border=0>
</A><br>
<strong>To    :</strong><input type="text" name="ActionTime2" size="11" value="<?=date('Y-m-d',time())?>">
<A onclick=event.cancelBubble=true; href="javascript:ShowCalendar(document.querytrace.dimg2,document.querytrace.ActionTime2,null,0,330)">
<IMG id="dimg2" height=21 src="/admin/js/datesel/button.gif" width=34 align=absMiddle border=0>
</A>  
</td>
</tr>
<tr>
</tr>
</form>
</table>
</BODY>
</HTML>
52juanjuan 2004-06-17
  • 打赏
  • 举报
回复
不知道楼主是不是要的这种结果:
可能显示不全就是日期因为采用的图片这里面没有所以有点模糊

第一个文件test.html进行测日期的主页面。
<HTML>
<HEAD>
<title>Query user</title>

</HEAD>
<script language="javascript">
function isDateString(sDate)
{ var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
var iaDate = new Array(3)
var year, month, day

if (arguments.length != 1)
return false
iaDate = sDate.toString().split("-")
if (iaDate.length != 3)
return false
if (iaDate[1].length > 2 || iaDate[2].length > 2)
return false

year = parseFloat(iaDate[0])
month = parseFloat(iaDate[1])
day=parseFloat(iaDate[2])

if (year < 1900 || year > 2100)
return false
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
iaMonthDays[1]=29;
if (month < 1 || month > 12)
return false
if (day < 1 || day > iaMonthDays[month - 1])
return false

if (day % 1 != 0)
return false

return true
}

function stringToDate(sDate, bIgnore)
{
var bValidDate, year, month, day
var iaDate = new Array(3)

if (bIgnore) bValidDate = true
else bValidDate = isDateString(sDate)

if (bValidDate)
{
iaDate = sDate.toString().split("-")
year = parseFloat(iaDate[0])
month = parseFloat(iaDate[1]) - 1
day=parseFloat(iaDate[2])
return (new Date(year,month,day))
}
else return (new Date(1900,1,1))
}



var g_MINY=1601;
var g_MAXY=4500;
var g_month=0;
var g_day=0;
var g_year=0;
var g_yLow=1990;

function GetInputDate(t,f)
{
var l=t.length;
if(0==l)
return false;

var cSp='\0';var sSp1="";
var sSp2="";

for(var i=0;i<t.length;i++)
{
var c=t.charAt(i);

if(c==' '||isdigit(c))continue;else if(cSp=='\0'&&(c=='/'||c=='-'||c=='.'))
{
cSp=c;
sSp1=t.substring(i+1,l);
}
else if(c==cSp)
sSp2=t.substring(i+1,l);
else if(c!=cSp)
return false;
}

if(0==sSp1.length)
return false;

var m;
var d;
var y;

if(g_dFmt=="mmddyy")
{
m=atoi(t);
d=atoi(sSp1);
}
else
{
d=atoi(t);
m=atoi(sSp1);
}

if(0!=sSp2.length)
y=atoi(sSp2);
else
y=DefYr(m,d);

if(y<100)
{
y=1900+y;
while(y<g_yLow)
y=y+100;
}

if(y<g_MINY||y>g_MAXY||m<1||m>12)
return false;

if(d<1||d>GetMonthCount(m,y))
return false;

g_month=m;
g_day=d;
g_year=y;
return true;
}

function DefYr(m,d)
{
var dt=new Date();
var yCur=(dt.getYear()<1000)?1900+dt.getYear():dt.getYear();

if(m-1<dt.getMonth()||(m-1==dt.getMonth()&&d<dt.getDate()))
return 1+yCur;
else return yCur;
}

function atoi(s)
{
var t=0;
for(var i=0;i<s.length;i++)
{
var c=s.charAt(i);

if(!isdigit(c))
return t;
else
t=t*10+(c-'0');
}
return t;
}

function isdigit(c)
{
return(c>='0'&&c<='9');
}

function GetMonthCount(m,y)
{
var c=rgMC[m-1];
if((2==m)&&IsLeapYear(y))
c++;
return c;
}

function IsLeapYear(y)
{
if(0==y%4&&((y%100!=0)||(y%400==0)))
return true;
else
return false;
}

var rgMC=new Array(12);
rgMC[0]=31;
rgMC[1]=28;
rgMC[2]=31;
rgMC[3]=30;
rgMC[4]=31;
rgMC[5]=30;
rgMC[6]=31;
rgMC[7]=31;
rgMC[8]=30;
rgMC[9]=31;
rgMC[10]=30;
rgMC[11]=31;
var g_eC=null;
var g_eCV="";
var g_dFmt="yymmdd";
var g_fnCB=null;

function ShowCalendar(eP,eD,eDP,dmin,dmax,fnCB)
{
var dF=document.all.CalFrame;
var wF=window.frames.CalFrame;

if(null==wF.g_fCalLoaded||false==wF.g_fCalLoaded)
{
alert("Unable to load popup calendar.\r\nPlease reload the page.");
return;
}

dtMin=new Date();
dtMin.setDate(dtMin.getDate()+dmin);
dtMax=new Date();
dtMax.setDate(dtMax.getDate()+dmax);
wF.SetMinMax(new Date(dtMin),new Date(dtMax));
g_fnCB=fnCB;
wF.cityname(fnCB);

if(eD==g_eC&&"block"==dF.style.display)
{
if(g_eCV!=eD.value&&GetInputDate(eD.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
wF.SetDate(g_day,g_month,g_year);
g_eCV=eD.value;
}
else
dF.style.display="none";
}
else
{
if(GetInputDate(eD.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
wF.SetDate(g_day,g_month,g_year);
}
else
if(null!=eDP&&GetInputDate(eDP.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
wF.SetDate(g_day,g_month,g_year);
}
else
{
var dt=new Date(dtMin);
wF.SetInputDate(-1,-1,-1);
wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
}

var eL=0;
var eT=0;
var p=eP;

while(p&&p.tagName!="BODY")
{
eT+=p.offsetTop;
eL+=p.offsetLeft;
p=p.offsetParent;
}

var eH=eP.offsetHeight;
var dH=dF.style.pixelHeight;
var sT=document.body.scrollTop;
dF.style.left=eL;

if(eT-dH>=sT&&eT+eH+dH>document.body.clientHeight+sT)
dF.style.top=eT-dH;
else
dF.style.top=eT+eH;

if("none"==dF.style.display)
dF.style.display="block";

g_eC=eD;
g_eCV=eD.value;
}
}

function SetDate(d,m,y)
{
var ds="-";
g_eC.focus();

if(g_dFmt=="mmddyy")
if (m<10) {
if (d<10)
g_eC.value="0"+m+ds+"0"+d+ds+y;
else
g_eC.value="0"+m+ds+d+ds+y;
}
else {
if (d<10)
g_eC.value=m+ds+"0"+d+ds+y;
else
g_eC.value=m+ds+d+ds+y;
}
else
if(g_dFmt=="yymmdd")
if (m<10) {
if (d<10)
g_eC.value=y+ds+"0"+m+ds+"0"+d;
else
g_eC.value=y+ds+"0"+m+ds+d;
}
else {
if (d<10)
g_eC.value=y+ds+m+ds+"0"+d;
else
g_eC.value=y+ds+m+ds+d;
}
else
g_eC.value=s+ds+m+ds+y;

g_eCV=g_eC.value;

if(null!=g_fnCB&&""!=g_fnCB)
eval(g_fnCB);
}

function GetDowStart()
{
return 0;
}

function GetDOW2(d,m,y)
{
var dt=new Date(y,m-1,d);
return(dt.getDay()+(7-GetDowStart()))%7;
}

function LoadMonths(n)
{
var dt=new Date();
var m=dt.getMonth()+1;
var y=dt.getFullYear();
var rg=new Array(n);

for(i=0;i<n;i++)
{
rg[i]=document.createElement("IMG");
rg[i].src="/images/elements/calendar/w"+GetDOW2(1,m,y)+"d"+GetMonthCount(m,y)+".gif";m++;

if(12<m)
{
m=1;
y++;
}
}
}

LoadMonths(12);

function chkBrowser()
{
this.ver=navigator.appVersion;
this.dom=document.getElementById?1:0;
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bVer=(this.ie5 || this.ie4 || this.ns4 || this.ns5);
return this;
}

bVer=new chkBrowser();
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;

function AttB(f)
{
if(bVer.ie4)
f.style.display='block';
}

function AttN(f)
{
if(bVer.ie4)
f.style.display='none';
}

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧