不用自己写校验了找一个日期选择的JS模块就OK了,很好用的你搜索一下论坛吧

解决方案 »

  1.   

    还是asp.net还用,这些功能都有控件可用!!
      

  2.   

    <script LANGUAGE="JScript">
    /*-- 判断一个字符串(YYYY-MM-DD)的日期是否正确 -- */
    function Date_istrue(asDate){
    var lsDate  = asDate + "";
    var loDate  = lsDate.split("-");
    if (loDate.length!=3) return false; 
    var liYear  = parseInt(loDate[0]);
    var liMonth = parseInt(loDate[1]);
    var liDay   = parseInt(loDate[2]);
    if ((loDate[0].length>4)||(loDate[1].length>2)||(loDate[2].length>2)) return false;
    if (isNaN(liYear)||isNaN(liMonth)||isNaN(liDay)) return false;
    if ((liYear<1900)||(liYear>3000)) return false;
    if ((liMonth>12)||(liMonth<=0))   return false;
    if (Date_getDay(liYear,liMonth)<liDay) return false;
    return !isNaN(Date.UTC(liYear,liMonth,liDay));
    } /*-- 返回某年某月的天数-- */
    function Date_getDay(aiYear,aiMonth){
    var loDay = [0,31,28,31,30,31,30,31,31,30,31,30,31];
    if (aiYear%4==0) loDay[2] = 29;
    return loDay[aiMonth];
    }
    </script>
    <input type="text" value="" id="indate">
    <INPUT TYPE="button" onclick="alert(Date_istrue(indate.value))" value="test">
      

  3.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    </head><body>
    请输入时间:<input onblur=checkDateInput(this)>
    <br>
    <br>
    </body></html>
    <script>
    function checkDateInput(obj)  //用于检查日期输入是否正确
    {
    if (obj.value.length==0) return false;
    var objValue=obj.value.replace(/[-\.]/g,"/");

    try
    {
    var a=new Date(objValue);
    if (isNaN(a))
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
    obj.focus();
    return false;
    }
    var b;
    if (a.getFullYear()<1900||a.getFullYear()>2100)
    {var Today=new Date();
    b=Today.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
    }
    else if (a.getFullYear()<1950)
    b=(a.getFullYear()+100)+"-"+(a.getMonth()+1)+"-"+a.getDate();
    else b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();

    obj.value=obj.value.replace(/[-\.\/]0*/g,"-");
    if (b!=obj.value)
    {
    obj.value=b;
    alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进行了修改。");
    obj.select();
    obj.focus();
    return false;
    }
    }
    catch(Exception)
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
    obj.focus();
    return false;
    }
    }</script>
      

  4.   

    //--- 方法名: judgeInputDate(AYear,AMonth,ADay)
    //--- 功能: 判断输入的年、月、日是否合法,时间范围在1900~2100年之间
    //--- 返回: 合法返回1,不合法返回0 
    //---     AYear : 输入的年份
    //---     AMonth: 输入的月份
    //---     ADay  : 输入的日子
    //--- 创建日期:         2001-06-27     最近更新日期:   2001-06-29
    //--- 创建程序员:       xg_delayth      最近更新程序员: xg_delayth
    //--- 维护程序员:       xg_delayth 
      function judgeInputDate(AYear,AMonth,ADay){
        var tempYear,tempMonth,tempDay;
        //--- 非闰年的每个月天数 
        var constMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        //--- 一般输入性判断  
        if ((AYear.length > 4) || (AMonth.length > 2)){return 0;}
        if ((judgeStringType(AYear,"iNChar") == false) || (judgeStringType(AMonth,"iNChar") == false) 
          || (judgeStringType(ADay,"iNChar") == false)){ return 0 }
        //--- 取得输入值  
        tempYear = parseInt(AYear);
        if((tempYear > 2100) || (tempYear < 1900)){return 0;}  
        tempMonth = parseInt(trimSubStr(AMonth,"0",1));
        tempDay = parseInt(trimSubStr(ADay,"0",1));
        //--- 判断月合法性
        if ((tempMonth == 0) || (tempMonth > 12)){return 0;}
        if (tempMonth != 2){
          if((tempDay > constMonth[tempMonth - 1]) || (tempDay == 0)){return 0;}
        } else{ //--- 根据闰年判断
          if((tempYear % 4 == 0) && (tempYear % 100 != 0) || (tempYear % 400 == 0)){
            if((tempDay > 29) || (tempDay == 0)){return 0;}
          }else{
            if((tempDay > constMonth[1]) || (tempDay == 0)){return 0;}
          }  
        } 
        return 1 
      }