您的位置:首页 > Web前端 > JavaScript

一个挺方便的挂历形式选择日期的js代码

2008-01-26 22:21 701 查看
<script language="javascript">
function showCalendar() {

var lastMouseX;
var lastMouseY;
var features;
var width,height;
width = 230;
height = 200;
if (navigator.appName.indexOf("Microsoft") != -1) e = window.event;
lastMouseX = e.screenX;
lastMouseY = e.screenY;
if (lastMouseX - width < 0) {
lastMouseX = width;
}
if (lastMouseY + height > screen.height) {
lastMouseY -= (lastMouseY + height + 50) - screen.height;
}
lastMouseX -= width;
lastMouseY += 10;
features = "width="+width+",height="+height+",status=no,resizable=no,"
features += "screenX=" + lastMouseX + ",left=" + lastMouseX + "screenY=" + lastMouseY + ",top=" + lastMouseY;

FileName = "inc/Calendar.asp?formElt=" + arguments[0];
vWinCal = window.open(FileName, "Calendar", features,false);
vWinCal.focus();
}

function isdate(strDate){

var re=/^/d{4}-/d{1,2}-/d{1,2}$/;
var r=strDate.match(re);
if (r==null) return false;

var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;

strDateArray = strDate.split(strSeparator);

if(strDateArray.length!=3) return false;

intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);

if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;

if(intMonth>12||intMonth<1) return false;

if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;

if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;

if(intMonth==2){
if(intDay<1) return false;

boolLeapYear = false;
if((intYear%100)==0){
if((intYear%400)==0) boolLeapYear = true;
}
else{
if((intYear%4)==0) boolLeapYear = true;
}

if(boolLeapYear){
if(intDay>29) return false;
}
else{
if(intDay>28) return false;
}
}

return true;
}

function alertDate(input) {
strDate = input.value;
if (strDate == '') return;
if(!isdate(strDate)) {
alert("请输入正确地的日期格式[YYYY-MM-DD]。");
input.focus();
input.select();
}
}
</script>
<input type="text" name="todate" size="16" onblur="alertDate(this)">
<a href=#1 onclick="javascript:showCalendar('form1.todate');">
<img src="images/cal.gif" border=0 width="18" height="17"></a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: