基于js的一个日历控件,点击按钮,弹出日历,显示日期到文本框

首先是一些js代码:

<Script LANGUAGE="JavaScript">

var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
var days = new Array("日","一", "二", "三","四", "五", "六");
var classTemp;
var today=new getToday();
var year=today.year;
var month=today.month;
var newCal;
function getDays(month, year) {
if (1 == month) 
return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28;
else 
return daysInMonth[month];
}
function getToday() {
this.now = new Date();
this.year = this.now.getFullYear();
this.month = this.now.getMonth();
this.day = this.now.getDate();
}
function Calendar() {
newCal = new Date(year,month,1);
today = new getToday();
var day = -1;
var startDay = newCal.getDay();
var endDay=getDays(newCal.getMonth(), newCal.getFullYear());
var daily = 0;
if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth())){
day = today.day;
}
var caltable = document.all.caltable.tBodies.calendar;
var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());
for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++)
for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++)
{
var cell = caltable.rows[intWeek].cells[intDay];
var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);
if ((intDay == startDay) && (0 == daily)){ 
daily = 1;
}
var daytemp=daily<10?("0"+daily):(daily);
var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">";
if(day==daily) 
cell.className="DayNow";
else if(intDay==6) 
cell.className = "DaySat";
else if (intDay==0) 
cell.className ="DaySun";
else 
cell.className="Day";
if ((daily > 0) && (daily <= intDaysInMonth)){
cell.innerText = daily;
daily++;
} else{
cell.className="CalendarTD";
cell.innerText = "";
}
}
document.all.year.value=year;
document.all.month.value=month+1;
}
function subMonth(){
if ((month-1)<0){
month=11;
year=year-1;
}else{
month=month-1;
}
Calendar();
}
function addMonth(){
if((month+1)>11){
month=0;
year=year+1;
}else{
month=month+1;
}
Calendar();
}
function setDate(){
if (document.all.month.value<1||document.all.month.value>12){
alert("月的有效范围在1-12之间!");
return;
}
year=Math.ceil(document.all.year.value);
month=Math.ceil(document.all.month.value-1);
Calendar();
}
</Script>
<Script>
function buttonOver(){
var obj = window.event.srcElement;
obj.runtimeStyle.cssText = "background-color:#FFFFFF";
// obj.className="Hover";
}
function buttonOut(){
var obj = window.event.srcElement;
window.setTimeout(function(){obj.runtimeStyle.cssText = "";},300);
}
</Script>
<script>
function getDiary(){
y=document.getElementById("year").value;
d=document.getElementById("month").value;
document.getElementById("showdate").value=y+"-"+d+"-"+event.srcElement.innerHTML;
document.getElementById("showdate").style.cssText="text-align:center"; //文字居中显示
document.getElementById("caltable").style.display="none";
}
</script>
<Script LANGUAGE="JavaScript">
function rili(){
document.getElementById('caltable').style.display='';
Calendar();
}

</Script>


下面是body里的内容

<input type="text" id=showdate>
<input type="button" id=controlcalendar value="日历" οnclick="rili();">
<table border="0" cellpadding="0" cellspacing="1" class="Calendar" id="caltable" style="display:none">
<thead>
<tr align="center" valign="middle">
<td colspan="7" class="Title">
<a href="javaScript:subMonth();" title="上一月" Class="DayButton">上一月</a> 
<input name="year" id="year" type="text" size="4" maxlength="4" οnblur="setDate();"> 年 
<input name="month" id="month" type="text" size="1" maxlength="2" οnblur="setDate();"> 月 
<a href="JavaScript:addMonth();" title="下一月" Class="DayButton">下一月</a>
</td>
</tr>
<tr align="center" valign="middle">
<Script LANGUAGE="JavaScript">
document.write("<TD class=DaySunTitle id=diary >" + days[0] + "</TD>");
for (var intLoop = 1; intLoop < days.length-1;intLoop++)
document.write("<TD class=DayTitle id=diary>" + days[intLoop] + "</TD>");
document.write("<TD class=DaySatTitle id=diary>" + days[intLoop] + "</TD>");
</Script>
</TR>
</thead>


<TBODY border=1 cellspacing="0" cellpadding="0" ID="calendar" ALIGN=CENTER ONCLICK="getDiary()">
<Script LANGUAGE="JavaScript">
for (var intWeeks = 0; intWeeks < 6; intWeeks++){
document.write("<TR style='cursor:hand'>");
for (var intDays = 0; intDays < days.length;intDays++) {
document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>");

}
document.write("</TR>");
}
</Script>
</TBODY>
</TABLE>

点击文本框按钮弹出日期 <div style="width:110px; float:left;"><input name="text" type="text" class="Input" id=showdate /></div><div style="margin-left:-20px; margin-top:4px; width:20px; float:left; z-index:1000;"> <input name="image" type="image" id=controlcalendar onclick="javascript:document.getElementById('caltable').style.display='';" value="日历" src="images/rq.gif" /></div> <table border="0" cellpadding="0" cellspacing="1" class="Calendar" id="caltable" style="display:none"> <thead> <tr align="center" valign="middle"> <td colspan="7" class="Title"> <a href="javaScript:subMonth();" title="上一月" Class="DayButton">3</a> <input name="year" id="year" type="text" size="4" maxlength="4" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 年 <input name="month" id="month" type="text" size="1" maxlength="2" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 月 <a href="JavaScript:addMonth();" title="下一月" Class="DayButton">4</a> </td> </tr> <tr align="center" valign="middle"> <Script LANGUAGE="JavaScript"> document.write("<TD class=DaySunTitle id=diary >" + days[0] + "</TD>"); for (var intLoop = 1; intLoop < days.length-1;intLoop++) document.write("<TD class=DayTitle id=diary>" + days[intLoop] + "</TD>"); document.write("<TD class=DaySatTitle id=diary>" + days[intLoop] + "</TD>"); </Script> </TR> </thead> <TBODY border=1 cellspacing="0" cellpadding="0" ID="calendar" ALIGN=CENTER ONCLICK="getDiary()"> <Script LANGUAGE="JavaScript"> for (var intWeeks = 0; intWeeks < 6; intWeeks++) { document.write("<TR style='cursor:hand'>"); for (var intDays = 0; intDays < days.length;intDays++) document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>"); document.write("</TR>"); } </Script> </TBODY> </TABLE>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值