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

本文介绍了一个使用JavaScript实现的简单日期选择器功能,该选择器通过弹出窗口展示日历供用户选择日期,并验证输入的日期格式是否正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值