日期输入特效限制输入格式,日历选择显示

自己整合别人的代码.
<SCRIPT LANGUAGE="JavaScript">   
/*------------------------------------------------*/
//more javascript from http://Www.VeryAsp.Net
/*
* Added by LiuXiaoChong 2005.4.25
* 限制输入的日期控件
* Param: txtName 为要限制输入的文本框的名称
*
* 功能描述:1,只能输入数字
* 2,左右键可以移动编辑焦点
* 3,上下键可以对数据进行微调
* 4,控件包含了对日期的合法校验
*/
function regDateControl(txtName)
{
var oInput = document.getElementById(txtName);
oInput.middleChar = "-";
oInput.selectIndex = 1; //默认选中年
oInput.maxLength = 10;
oInput.style.imeMode = "disabled";
oInput.value = specialText_GetDate(oInput.middleChar);
oInput.charWidth = oInput.createTextRange().boundingWidth / oInput.maxLength;

//注册单击事件
oInput.onclick = specialText_ClickEvent;
oInput.onkeydown = specialText_KeyDownEvent;
oInput.onfocus = function(){specialText_SelectYear(this);}
oInput.onblur = function()
{
specialText_validYear(this);
specialText_validMonth(this);
specialText_validDate(this);
}
//屏蔽鼠标右键和拖动操作
oInput.oncontextmenu = function(){return false;}
oInput.ondrop = function(){return false;}
}

//鼠标单击,根据位置对日期进行分体选择
function specialText_ClickEvent()
{
c.showMoreDay = true;c.show(this,'1980-01-01');
event.cancelBubble = true;
specialText_validYear(this);
specialText_validMonth(this);
specialText_validDate(this);
if(event.offsetX <= specialText_getCharWidth(this.charWidth,4))
specialText_SelectYear(this);
else if(event.offsetX > specialText_getCharWidth(this.charWidth,4)
&& event.offsetX <= specialText_getCharWidth(this.charWidth,7))
specialText_SelectMonth(this);
else if(event.offsetX > specialText_getCharWidth(this.charWidth,7))
specialText_SelectDate(this);
}
//选中年份
function specialText_SelectYear(oInput)
{
var oRange = oInput.createTextRange();
oRange.moveStart("character",0);
oRange.moveEnd("character",-6);
//代表选中了年
oInput.selectIndex = 1;
oRange.select();
}
//选中月份
function specialText_SelectMonth(oInput)
{
var oRange = oInput.createTextRange();
oRange.moveStart("character",5);
oRange.moveEnd("character",-3);
//代表选中了月
oInput.selectIndex = 2;
oRange.select();
}
//选中日期
function specialText_SelectDate(oInput)
{
var oRange = oInput.createTextRange();
oRange.moveStart("character",8);
//代表选中了日期
oInput.selectIndex = 3;
oRange.select();
}
//校验年份有效性
function specialText_validYear(oInput)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strYear = arrValue[0];

if(parseInt(strYear,10) == 0)
arrValue[0] = 2000;
//如果年份小于4位,则在2000基础上增加
else if(strYear.length < 4)
arrValue[0] = 2000 + parseInt(strYear,10);
oInput.value = arrValue.join(oInput.middleChar);
}
//校验月份有效性
function specialText_validMonth(oInput)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strMonth = arrValue[1];
//如果月份输入了0,则按1月处理
if(parseInt(strMonth,10) == 0)
arrValue[1] = "01";
//如果月份是一位,则前面补0
else if(strMonth.length < 2)
arrValue[1] = "0" + strMonth;
//如果月份大于12月,自动转为12月
else if(parseInt(strMonth,10) > 12)
arrValue[1] = "12";
oInput.value = arrValue.join(oInput.middleChar);
}
//校验日期有效性
function specialText_validDate(oInput)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strYear = arrValue[0];
var strMonth = arrValue[1];
var strDate = arrValue[2];
var intMonth = parseInt(strMonth,10);
if(parseInt(strDate,10) == 0)
arrValue[2] = "01";
else if(strDate.length < 2)
arrValue[2] = "0" + strDate;
else
{
//如果超过了月份的最大天数,则置为最大天数
var monthMaxDates = specialText_getMonthDates(strYear,strMonth);
if(parseInt(strDate,10) > monthMaxDates)
arrValue[2] = monthMaxDates;
}
oInput.value = arrValue.join(oInput.middleChar);
}

function specialText_YearAdd(oInput,isMinus)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strYear = arrValue[0];
if(isMinus)
{
arrValue[0] = parseInt(strYear,10) - 1;
if(parseInt(arrValue[0],10) < 1)
arrValue[0] = "0001";
}
else
arrValue[0] = parseInt(strYear,10) + 1;
oInput.value = arrValue.join(oInput.middleChar);
specialText_validYear(oInput);
specialText_SelectYear(oInput);
}

function specialText_MonthAdd(oInput,isMinus)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strMonth = arrValue[1];
if(isMinus)
{
arrValue[1] = parseInt(strMonth,10) - 1;
if(parseInt(arrValue[1],10) == 0)
arrValue[1] = "12";
}
else
{
arrValue[1] = parseInt(strMonth,10) + 1;
if(parseInt(arrValue[1],10) == 13)
arrValue[1] = "01";
}
oInput.value = arrValue.join(oInput.middleChar);
specialText_validMonth(oInput);
specialText_SelectMonth(oInput);
}

function specialText_DateAdd(oInput,isMinus)
{
var arrValue = oInput.value.split(oInput.middleChar);
var strYear = arrValue[0];
var strMonth = arrValue[1];
var strDate = arrValue[2];
var monthMaxDates = specialText_getMonthDates(strYear,strMonth);

if(isMinus)
{
arrValue[2] = parseInt(strDate,10) - 1;
if(parseInt(arrValue[2],10) == 0)
arrValue[2] = monthMaxDates;
}
else
{
arrValue[2] = parseInt(strDate,10) + 1;
if(parseInt(arrValue[2],10) == (monthMaxDates + 1))
arrValue[2] = "01";
}
oInput.value = arrValue.join(oInput.middleChar);
specialText_validDate(oInput);
specialText_SelectDate(oInput);
}

function specialText_KeyDownEvent()
{
//如果按了数字键
if((event.keyCode >= 48 && event.keyCode <= 57) ||
(event.keyCode >= 96 && event.keyCode <= 105))
{
var oRange = document.selection.createRange();
if(oRange.text.indexOf(this.middleChar) != -1)
event.returnValue = false;
else
event.returnValue = true;
}
//如果按了方向键
else if(event.keyCode >= 37 && event.keyCode <= 40)
{
event.returnValue = false;
var keyCode = event.keyCode;
//按了左键
if(keyCode == 37)
{
if(this.selectIndex == 1)
{
specialText_validYear(this);
specialText_SelectDate(this);
}
else if(this.selectIndex == 2)
{
specialText_validMonth(this);
specialText_SelectYear(this);
}
else if(this.selectIndex == 3)
{
specialText_validDate(this);
specialText_SelectMonth(this);
}
}
//按了右键
if(keyCode == 39)
{
if(this.selectIndex == 1)
{
specialText_validYear(this);
specialText_SelectMonth(this);
}
else if(this.selectIndex == 2)
{
specialText_validMonth(this);
specialText_SelectDate(this);
}
else if(this.selectIndex == 3)
{
specialText_validDate(this);
specialText_SelectYear(this);
}
}

//按了上键
if(keyCode == 38)
{
if(this.selectIndex == 1)
{
specialText_validYear(this);
specialText_YearAdd(this,true);
}
else if(this.selectIndex == 2)
{
specialText_validMonth(this);
specialText_MonthAdd(this,true);
}
else if(this.selectIndex == 3)
{
specialText_validDate(this);
specialText_DateAdd(this,true);
}
}

//按了下键
if(keyCode == 40)
{
if(this.selectIndex == 1)
{
specialText_validYear(this);
specialText_YearAdd(this,false);
}
else if(this.selectIndex == 2)
{
specialText_validMonth(this);
specialText_MonthAdd(this,false);
}
else if(this.selectIndex == 3)
{
specialText_validDate(this);
specialText_DateAdd(this,false);
}
}
}
//如果按了F5 或 TAB,不屏蔽
else if(event.keyCode == 116 || event.keyCode == 9)
event.returnValue = true;
else
{
event.returnValue = false;
event.keyCode = 0;
}
}

/*---------------------辅助函数-----------------------*/
//得到默认日期
function specialText_GetDate(middleChar)
{
var oDate = new Date();
return oDate.getYear() + middleChar
+ (oDate.getMonth() < 10 ? ("0" + oDate.getMonth()) : oDate.getMonth()) + middleChar
+ (oDate.getDate() < 10 ? ("0" + oDate.getDate()) : oDate.getDate());
}
//得到字符像素宽度
function specialText_getCharWidth(charWidth,charNum)
{
return charNum * charWidth;
}
//得到某年某月的最大天数
function specialText_getMonthDates(strYear,strMonth)
{
var intMonth = parseInt(strMonth,10);
if(intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7
|| intMonth == 8 || intMonth == 10 || intMonth == 12)
return 31;
//处理30天的月份
else if(intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11)
return 30;
//处理2月份
else
{
//闰年
if(specialText_isLeapYear(strYear))
return 29;
//平年
else
return 28;
}
}
//判断是否是闰年
function specialText_isLeapYear(strYear)
{
var intYear = parseInt(strYear,10);
if((intYear % 4 == 0 && intYear % 100 != 0) ||
(intYear % 100 == 0 && intYear % 400 == 0))
return true;
else
return false;
}

function init()
{
regDateControl('date1');
}
</SCRIPT>


<script language="javascript">
function Calendar(objName)
{//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
this.style = {
borderColor : "#909eff", //边框颜色
headerBackColor : "#909EFF", //表头背景颜色
headerFontColor : "#ffffff", //表头字体颜色
bodyBarBackColor : "#f4f4f4", //日历标题背景色
bodyBarFontColor : "#000000", //日历标题字体色
bodyBackColor : "#ffffff", //日历背景色
bodyFontColor : "#000000", //日历字体色
bodyHolidayFontColor : "#ff0000", //假日字体色
watermarkColor : "#d4d4d4", //背景水印色
moreDayColor : "#cccccc"
};
this.showMoreDay = false; //是否显示上月和下月的日期
this.Obj = objName;
this.date = null;
this.mouseOffset = null;
this.dateInput = null;
this.timer = null;
};
Calendar.prototype.toString = function()
{
var str = this.getStyle();
str += '<div Author="alin" class="calendar" style="display:none;" onselectstart="return false" oncontextmenu="return false" id="Calendar">\n';
str += '<div Author="alin" class="cdrWatermark" id="cdrWatermark"></div><div id="cdrBody" style="position:absolute;left:0px;top:0px;z-index:2;width:140px;">';
str += this.getHeader();
str += this.getBody();
str += '</div><div Author="alin" id="cdrMenu" style="position:absolute;left:0px;top:0px;z-index:3;display:none;" onmouseover="' + this.Obj + '.showMenu(null);" onmouseout="' + this.Obj + '.hideMenu();"></div></div>';
return str;
};
Calendar.prototype.getStyle = function()
{
var str = '<style type="text/css">\n';
str += '.calendar{position:absolute;width:140px!important;width /**/:142px;height:184px!important;height /**/:174px;background-color:'+this.style.bodyBackColor+';border:1px solid ' + this.style.borderColor + ';left:0px;top:0px;z-index:9999;}\n';
str += '.cdrHeader{background-color:'+ this.style.headerBackColor +';width:140px;height:22px;font-size:12px;color:'+this.style.headerFontColor+';}\n';
str += '.cdrWatermark{position:absolute;left:0px;top:55px;width:140px;font-family: Arial Black;font-size:50px;color:'+this.style.watermarkColor+';z-index:1;text-align:center;}\n';
str += '.cdrBodyBar{background-color:' + this.style.bodyBarBackColor + ';font-size:12px;color:' + this.style.bodyBarFontColor + ';width:140px;height:20px;}\n';
str += '.cdrBody{width:140px;height:122px!important; height /**/:110px;font-size:12px;cursor:pointer;color:' + this.style.bodyFontColor + ';}\n';
str += '.dayOver{height:16px;padding:0px;border:1px solid black;background-color:#f4f4f4;}\n';
str += '.dayOut{padding:1px;border:none;height:16px;}\n';
str += '.menuOver{background-color:'+this.style.headerBackColor+';color:'+this.style.headerFontColor+';font-size:12px;}\n';
str += '.headerOver{border:1px solid black;background-color:#f4f4f4;color:black;cursor:default;}\n';
str += '.cdrMenu{font-size:12px;border:1px solid #000000;background-color:#ffffff;cursor:default;width:100%}\n';
str += 'html>body #Calendar{width:142px;174px;}';
str += '</style>\n';
return str;
};
Calendar.prototype.getHeader = function()
{
var str = '<table Author="alin" class="cdrHeader" cellSpacing="2" cellPadding="0"><tr Author="alin" align="center">\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousYear" title="上一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(false);"><<</td>\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousMonth" title="上一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(false);"><</td>\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentYear" style="width:50px;" onclick="' + this.Obj + '.showMenu(true);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentMonth" onclick="' + this.Obj + '.showMenu(false);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextMonth" title="下一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(true);">></td>\n';
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextYear" title="下一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(true);">>></td></tr>\n';
str += '</table>\n';
return str;
};
Calendar.prototype.getBody = function()
{
var n = 0;
var str = this.getBodyBar();
str += '<table Author="alin" class="cdrBody" cellSpacing="2" cellPadding="0">\n';
for(i = 0; i < 6; i++)
{
str += '<tr Author="alin" align="center">';
for(j = 0; j < 7; j++)
{
str += '<td Author="alin" class="dayOut" id="cdrDay'+(n++)+'" width="13%"></td>\n';
}
str += '</tr>';
}
str += '</table>\n';
str += '<table Author="alin" class="cdrBodyBar" cellSpacing="2" cellPadding="0"><tr align="center" Author="alin"><td Author="alin" style="cursor:pointer;" onclick="'+this.Obj+'.getToday();">今天:'+new Date().toFormatString("yyyy年mm月dd日")+'</td></tr></table>\n';
return str;
};
Calendar.prototype.getBodyBar = function()
{
var str = '<table Author="alin_bar" id="cdrBodyBar" class="cdrBodyBar" style="cursor:move;" cellSpacing="2" cellPadding="0"><tr Author="alin_bar" align="center">\n';
var day = new Array('日','一','二','三','四','五','六');
for(i = 0; i < 7; i++)
{
str += '<td Author="alin_bar">' + day[i] + '</td>\n';
}
str += '</tr></table>';
return str;
}
Calendar.prototype.getYearMenu = function(year)
{
var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n';
for(i = 0; i < 10; i++)
{
var _year = year + i;
var _date = new Date(_year,this.date.getMonth(),this.date.getDate());
//alert(this.date.getDate());点击年份时
str += '<tr Author="alin" align="center"><td Author="alin" width="13%" height="16" ';
if(this.date.getFullYear() != _year)
{
str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" ';
}
else
{
str += 'class="menuOver"';
}
str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("yyyy-mm-dd") + '\')">' + _year + '年</td>\n';
str += '</tr>';
}
str += '<tr Author="alin" align="center"><td Author="alin"><table Author="alin" style="font-size:12px;width:100%;" cellSpacing="0" cellPadding="0">\n';
str += '<tr Author="alin" align="center"><td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year - 10) + ')"><<</td>\n';
str += '<td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year + 10) +')">>></td><tr>\n';
str += '</table></td></tr>\n';
str += '</table>';
var _menu = getObjById("cdrMenu");
_menu.innerHTML = str;
};
Calendar.prototype.getMonthMenu = function()
{
var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n';
for(i = 1; i <= 12; i++)
{
var _date = new Date(this.date.getFullYear(),i-1,this.date.getDate());
str += '</tr><tr Author="alin" align="center"><td Author="alin" height="16" ';
if(this.date.getMonth() + 1 != i)
{
str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" ';
}
else
{
str += 'class="menuOver"';
}
str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("yyyy-mm-dd") + '\')">'+i+'月</td></tr>\n';
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
str += '</table>';
var _menu = getObjById("cdrMenu");
_menu.innerHTML = str;
};
Calendar.prototype.show = function()
{
if (arguments.length > 3 || arguments.length == 0)
{
alert("对不起!传入参数不对!" );
return;
}
var _date = null;
var _evObj = null;
var _initValue = null
for(i = 0; i < arguments.length; i++)
{
if(typeof(arguments[i]) == "object" && arguments[i].type == "text")
{_date = arguments[i];}
else if(typeof(arguments[i]) == "object")
{_evObj = arguments[i];}
else if(typeof(arguments[i]) == "string")
{_initValue = arguments[i];}
}
_evObj = _evObj || _date;
inputObj = _date;
targetObj = _evObj
if(!_date){alert("传入参数错误!"); return;}
this.dateInput = _date;
_date = _date.value;
if(_date == "" && _initValue) _date = _initValue;
this.bindDate(_date);
var _target = getPosition(_evObj);
var _obj = getObjById("Calendar");
_obj.style.display = "";
_obj.style.left = _target.x + 'px';
if((document.body.clientHeight - (_target.y + _evObj.clientHeight)) >= _obj.clientHeight)
{
_obj.style.top = (_target.y + _evObj.clientHeight) + 'px';
}
else
{
_obj.style.top = (_target.y - _obj.clientHeight) + 'px';
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
};
Calendar.prototype.hide = function()
{
var obj = getObjById("Calendar");
obj.style.display = "none";
};
Calendar.prototype.bindDate = function(date)
{
var _monthDays = new Array(31,30,31,30,31,30,31,31,30,31,30,31);
var _arr = date.split('-');
var _date = new Date(_arr[0],_arr[1]-1,_arr[2]);
if(isNaN(_date)) _date = new Date();
this.date = _date;
this.bindHeader();
var _year = _date.getFullYear();
var _month = _date.getMonth();
var _day = 1;
var _startDay = new Date(_year,_month,1).getDay();
var _previYear = _month == 0 ? _year - 1 : _year;
var _previMonth = _month == 0 ? 11 : _month - 1;
var _previDay = _monthDays[_previMonth];
if (_previMonth == 1) _previDay =((_previYear%4==0)&&(_previYear%100!=0)||(_previYear%400==0))?29:28;
_previDay -= _startDay - 1;
var _nextDay = 1;
_monthDays[1] = ((_year%4==0)&&(_year%100!=0)||(_year%400==0))?29:28;
for(i = 0; i < 40; i++)
{
var _dayElement = getObjById("cdrDay" + i);
_dayElement.onmouseover = Function(this.Obj + ".onMouseOver(this)");
_dayElement.onmouseout = Function(this.Obj + ".onMouseOut(this)");
_dayElement.onclick = Function(this.Obj + ".onClick(this)");
this.onMouseOut(_dayElement);
_dayElement.style.color = "";
if(i < _startDay)
{
//获取上一个月的日期
if(this.showMoreDay)
{
var _previDate = new Date(_year,_month - 1,_previDay);
_dayElement.innerHTML = _previDay;
_dayElement.title = _previDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _previDate.toFormatString("yyyy-mm-dd");
_dayElement.style.color = this.style.moreDayColor;
_previDay++;
}else
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}
else if(_day > _monthDays[_month])
{
//获取下个月的日期
if(this.showMoreDay)
{
var _nextDate = new Date(_year,_month + 1,_nextDay);
_dayElement.innerHTML = _nextDay;
_dayElement.title = _nextDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _nextDate.toFormatString("yyyy-mm-dd");
_dayElement.style.color = this.style.moreDayColor;
_nextDay++;
}else
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
else if(i >= new Date(_year,_month,1).getDay() && _day <= _monthDays[_month])
{
//获取本月日期
_dayElement.innerHTML = _day;
if(_day == _date.getDate())
{
this.onMouseOver(_dayElement);
_dayElement.onmouseover = Function("");
_dayElement.onmouseout = Function("");
}
if(this.isHoliday(_year,_month,_day))
{
_dayElement.style.color = this.style.bodyHolidayFontColor;
}
var _curDate = new Date(_year, _month, _day);
_dayElement.title = _curDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _curDate.toFormatString("yyyy-mm-dd");
_day++;
}
else
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}
var _menu = getObjById("cdrMenu");
_menu.style.display = "none";
};
Calendar.prototype.bindHeader = function()
{
var _curYear = getObjById("currentYear");
var _curMonth = getObjById("currentMonth");
var _watermark = getObjById("cdrWatermark");
_curYear.innerHTML = this.date.toFormatString("yyyy年");
_curMonth.innerHTML = this.date.toFormatString("mm月");
_watermark.innerHTML = this.date.getFullYear();
};
Calendar.prototype.getToday = function()
{
var _date = new Date();
this.bindDate(_date.toFormatString("yyyy-mm-dd"));
};
Calendar.prototype.isHoliday = function(year,month,date)
{
var _date = new Date(year,month,date);
return (_date.getDay() == 6 || _date.getDay() == 0);
};
Calendar.prototype.onMouseOver = function(obj)
{
obj.className = "dayOver";
};
Calendar.prototype.onMouseOut = function(obj)
{//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
obj.className = "dayOut";
};
Calendar.prototype.onClick = function(obj)
{
var abc = obj.value;
var tmp = abc.split("-");
for(var i=0;i<tmp.length;i++){
if(tmp[i]<10){
tmp[i]='0'+tmp[i];
}
}
obj.value=tmp[0]+'-'+tmp[1]+'-'+tmp[2];
//alert(tmp[0]+'-'+tmp[1]+'-'+tmp[2]);
if(obj.innerHTML != "") this.dateInput.value = obj.value;
//alert(obj.value);设置input的值
this.hide();
};
Calendar.prototype.onChangeYear = function(isnext)
{
var _year = this.date.getFullYear();
var _month = this.date.getMonth() + 1;
var _date = this.date.getDate();
if(_year > 999 && _year <10000)
{
if(isnext){_year++;}else{ _year --;}
}
else
{
alert("年份超出范围(1000-9999)!");
}

this.bindDate(_year + '-' + _month + '-' + _date);

};
Calendar.prototype.onChangeMonth = function(isnext)
{
var _year = this.date.getFullYear();
var _month = this.date.getMonth() + 1;
var _date = this.date.getDate();
if(isnext){ _month ++;} else {_month--;}
if(_year > 999 && _year <10000)
{
if(_month < 1) {_month = 12; _year--;}
if(_month > 12) {_month = 1; _year++;}
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
else
{
alert("年份超出范围(1000-9999)!");
}
this.bindDate(_year + '-' + _month + '-' + _date);
};
Calendar.prototype.showMenu = function(isyear)
{
var _menu = getObjById("cdrMenu");
if(isyear != null)
{
var _obj = (isyear)? getObjById("currentYear") : getObjById("currentMonth");
if(isyear)
{
this.getYearMenu(this.date.getFullYear() - 5);
}
else
{
this.getMonthMenu();
}
_menu.style.top = (_obj.offsetTop + _obj.offsetHeight) + 'px';
_menu.style.left = _obj.offsetLeft + 'px';
_menu.style.width = _obj.offsetWidth + 'px';
}
if (this.timer != null) clearTimeout(this.timer);
_menu.style.display="";
}
Calendar.prototype.hideMenu = function()
{
var _obj = getObjById("cdrMenu");
this.timer = window.setTimeout(function(){_obj.style.display='none';},500);
}
Number.prototype.NaN0 = function()
{//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
return isNaN(this) ? 0 : this;
}
Date.prototype.toFormatString = function(fs)
{
if(fs.length == 1)
{//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
return this.getFullYear() + fs + (this.getMonth() + 1) + fs + this.getDate();
}
fs = fs.replace("yyyy",this.getFullYear());
fs = fs.replace("mm",(this.getMonth() + 1));
fs = fs.replace("dd",this.getDate());
//alert(this.getDate());
return fs;
}
/************公用方法及变量**************/
var inputObj = null;
var targetObj = null;
var dragObj = null;
var mouseOffset = null;
function getObjById(obj)
{
if(document.getElementById)
{
return document.getElementById(obj);
}
else
{
alert("浏览器不支持!");
}
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
function mouseCoords(ev)
{
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
function getPosition(e)
{
var left = 0;
var top = 0;
while (e.offsetParent){
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
e = e.offsetParent;
}
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
return {x:left, y:top};
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
function getMouseOffset(target, ev)
{
ev = ev || window.event;
var docPos = getPosition(target);
var mousePos = mouseCoords(ev);
return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}
function closeCalendar(evt){
evt = evt || window.event;
var _target= evt.target || evt.srcElement;
if(!_target.getAttribute("Author") && _target != inputObj && _target != targetObj)
{
getObjById("Calendar").style.display = "none";
}
}
function dragStart(evt){
evt = evt || window.event;
var _target= evt.target || evt.srcElement;
if(_target.getAttribute("Author") == "alin_bar")
{
dragObj = getObjById("Calendar");
mouseOffset = getMouseOffset(dragObj, evt);
}
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
function drag(evt)
{
evt = evt || window.event;
if(dragObj)
{
var mousePos = mouseCoords(evt);
dragObj.style.left = (mousePos.x - mouseOffset.x) + 'px';
dragObj.style.top = (mousePos.y - mouseOffset.y) + 'px';
}
}
//拖动结束
function dragEnd(evt)
{
dragObj = null;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
/***********End 公用方法*********/
document.onclick = closeCalendar;
document.onmousedown = dragStart;
document.onmousemove = drag;
document.onmouseup = dragEnd;
/*********结束**********/
</script>


<body onload="init();">
<script>
var c = new Calendar("c");
document.write(c);
</script>


<table>
<tr>
<td>
普通调用:
<INPUT TYPE="text" NAME="date1" onclick="" ></table>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值