var outObject;
function setday(tt,obj) //主调函数
{
  if (arguments.length >  2){alert("Sorry!Input Controls too many!");return;}
  if (arguments.length == 0){alert("Sorry!No Controls be transfered!");return;}
  var dads  = document.all.meizzDateLayer.style;var th = tt;
  var ttop  = tt.offsetTop;     //TT控件的定位点高
  var thei  = tt.clientHeight;  //TT控件本身的高
  var tleft = tt.offsetLeft;    //TT控件的定位点宽
  var ttyp  = tt.type;          //TT控件的类型
  while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}
  dads.top  = (ttyp=="image")? ttop+thei : ttop+thei+6;
  dads.left = tleft;
  outObject = (arguments.length == 1) ? th : obj;
  dads.display = '';
  event.returnValue=false;
}var MonHead = new Array(12);        //定义阳历中每个月的最大天数
    MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4]  = 31; MonHead[5]  = 30;
    MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;var meizzTheYear=new Date().getFullYear(); //定义年的变量的初始值
var meizzTheMonth=new Date().getMonth()+1; //定义月的变量的初始值
var meizzTheDay=new Date().getDate();      //定义日的变量的初始值
var meizzWDay=new Array(37);               //定义写日期的数组
var meizzCMonth=new Date().getMonth()+1;   //定义当前的月份
var meizzCYear=new Date().getFullYear();   //定义当前的年function document.onclick() //任意点击时关闭该控件

  with(window.event.srcElement)
  { if (tagName != "INPUT" && getAttribute("Author")==null)
    document.all.meizzDateLayer.style.display="none";
  }
}function meizzWriteHead(yy,mm)  //往 head 中写入当前的年与月
  { document.all.meizzYearHead.innerText  = yy;
    var Month="";
    if(mm==1)
    {
        Month="January";
    }
    else if(mm==2)
    {
        Month="February";
    }
    else if(mm==3)
    {
        Month="March";
    }
    else if(mm==4)
    {
        Month="April";
    }
    else if(mm==5)
    {
        Month="May";
    }
    else if(mm==6)
    {
        Month="June";
    }
    else if(mm==7)
    {
        Month="July";
    }
    else if(mm==8)
    {
        Month="August";
    }
    else if(mm==9)
    {
        Month="September";
    }
    else if(mm==10)
    {
        Month="October";
    }
    else if(mm==11)
    {
        Month="November";
    }
    else if(mm==12)
    {
        Month="December";
    }
    document.all.meizzMonthHead.innerText = Month;
  }function tmpSelectYearInnerHTML(strYear) //年份的下拉框
{
  if (strYear.match(/\D/)!=null){alert("Year Input Number!");return;}
  var m = (strYear) ? strYear : new Date().getFullYear();
  if (m < 1000 || m > 9999) {alert("Year must be from 1000 to 9999!");return;}
  var n = m - 88;
  if (n < 1000) n = 1000;
  if (n + 98 > 9999) n = 9965;
  var s = "<select Author=meizz name=tmpSelectYear style='font-size: 12px' "
     s += "onblur='document.all.tmpSelectYearLayer.style.display=\"none\"' "
     s += "onchange='document.all.tmpSelectYearLayer.style.display=\"none\";"
     s += "meizzTheYear = this.value; meizzSetDay(meizzTheYear,meizzTheMonth)'>\r\n";
  var selectInnerHTML = s;
  for (var i = n; i < n + 98; i++)
  {
    if (i == m)
       {selectInnerHTML += "<option value='" + i + "' selected>" + i + "" + "</option>\r\n";}
    else {selectInnerHTML += "<option value='" + i + "'>" + i + "" + "</option>\r\n";}
  }
  selectInnerHTML += "</select>";
  document.all.tmpSelectYearLayer.style.display="";
  document.all.tmpSelectYearLayer.innerHTML = selectInnerHTML;
  document.all.tmpSelectYear.focus();
}function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框
{
  //if (strMonth.match(/\D/)!=null){alert("Month Input Number!");return;}
  
  var curMonth="";
    if(strMonth=="January")
    {
        curMonth="1";
    }
    else if(strMonth=="February")
    {
        curMonth="2";
    }
    else if(strMonth=="March")
    {
        curMonth="3";
    }
    else if(strMonth=="April")
    {
        curMonth="4";
    }
    else if(strMonth=="May")
    {
        curMonth="5";
    }
    else if(strMonth=="June")
    {
        curMonth="6";
    }
    else if(strMonth=="July")
    {
        curMonth="7";
    }
    else if(strMonth=="August")
    {
        curMonth="8";
    }
    else if(strMonth=="September")
    {
        curMonth="9";
    }
    else if(strMonth=="October")
    {
        curMonth="10";
    }
    else if(strMonth=="November")
    {
        curMonth="11";
    }
    else if(strMonth=="December")
    {
        curMonth="12";
    }
  
  var m = (curMonth) ? curMonth : new Date().getMonth() + 1;
  var s = "<select Author=meizz name=tmpSelectMonth style='font-size: 12px' "
     s += "onblur='document.all.tmpSelectMonthLayer.style.display=\"none\"' "
     s += "onchange='document.all.tmpSelectMonthLayer.style.display=\"none\";"
     s += "meizzTheMonth = this.value; meizzSetDay(meizzTheYear,meizzTheMonth)'>\r\n";
  var selectInnerHTML = s;
  for (var i = 1; i < 13; i++)
  {
    var Month="";
    if(i==1)
    {
        Month="January";
    }
    else if(i==2)
    {
        Month="February";
    }
    else if(i==3)
    {
        Month="March";
    }
    else if(i==4)
    {
        Month="April";
    }
    else if(i==5)
    {
        Month="May";
    }
    else if(i==6)
    {
        Month="June";
    }
    else if(i==7)
    {
        Month="July";
    }
    else if(i==8)
    {
        Month="August";
    }
    else if(i==9)
    {
        Month="September";
    }
    else if(i==10)
    {
        Month="October";
    }
    else if(i==11)
    {
        Month="November";
    }
    else if(i==12)
    {
        Month="December";
    }
    if (i == m)
       {selectInnerHTML += "<option value='"+i+"' selected>"+Month+""+"</option>\r\n";}
    else {selectInnerHTML += "<option value='"+i+"'>"+Month+""+"</option>\r\n";}
  }
  selectInnerHTML += "</select>";
  document.all.tmpSelectMonthLayer.style.display="";
  document.all.tmpSelectMonthLayer.innerHTML = selectInnerHTML;
  document.all.tmpSelectMonth.focus();
}

解决方案 »

  1.   

    function closeLayer()               //这个层的关闭
      {
        document.all.meizzDateLayer.style.display="none";
      }function document.onkeydown()
      {
        if (window.event.keyCode==27)document.all.meizzDateLayer.style.display="none";
      }function IsPinYear(year)            //判断是否闰平年
      {
        if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false;
      }function GetMonthCount(year,month)  //闰年二月为29天
      {
        var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;return c;
      }function GetDOW(day,month,year)     //求某天的星期几
      {
        var dt=new Date(year,month-1,day).getDay()/7; return dt;
      }function meizzPrevY()  //往前翻 Year
      {
        if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear--;}
        else{alert("Out of Index(1000-9999)!");}
        meizzSetDay(meizzTheYear,meizzTheMonth);
      }
    function meizzNextY()  //往后翻 Year
      {
        if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear++;}
        else{alert("Out of Index(1000-9999)!");}
        meizzSetDay(meizzTheYear,meizzTheMonth);
      }
    function meizzToday()  //Today Button
      {
        meizzTheYear = new Date().getFullYear();
        meizzTheMonth = new Date().getMonth()+1;
        document.all.meizzDateLayer.style.display="none";
        meizzSetDay(meizzTheYear,meizzTheMonth);
        outObject.value="";
      }
    function meizzPrevM()  //往前翻月份
      {
        if(meizzTheMonth>1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;}
        meizzSetDay(meizzTheYear,meizzTheMonth);
      }
    function meizzNextM()  //往后翻月份
      {
        if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++}
        meizzSetDay(meizzTheYear,meizzTheMonth);
      }function meizzSetDay(yy,mm)   //主要的写程序**********
    {
    //  meizzWriteHead(yy,mm);
    //  for (var i = 0; i < 37; i++){meizzWDay[i]=""};  //将显示框的内容全部清空
    //  var day1 = 1,firstday = new Date(yy,mm-1,1).getDay();  //某月第一天的星期几
    //  for (var i = firstday; day1 < GetMonthCount(yy,mm)+1; i++){meizzWDay[i]=day1;day1++;}
    //  for (var i = 0; i < 37; i++)
    //  { var da = eval("document.all.meizzDay"+i)     //书写新的一个月的日期星期排列
    //    if (meizzWDay[i]!="")
    //      { da.innerHTML = "<b>" + meizzWDay[i] + "</b>";
    //        da.style.backgroundColor = (yy == new Date().getFullYear() &&
    //        mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700" : "#73a6de";
    //        da.style.cursor="hand"
    //      }
    //    else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}
    //  } meizzWriteHead(yy,mm);
      for (var i = 0; i < 37; i++){meizzWDay[i]=""};  //将显示框的内容全部清空
      var day1 = 1,firstday = new Date(yy,mm-1,1).getDay();  //某月第一天的星期几  for (var i = firstday; day1 < GetMonthCount(yy,mm)+1; i++)
      {
         meizzWDay[i]=day1;day1++;
      }
      
       var dd = meizzTheDay;
      
      for (var i = 0; i < 37; i++)
      { 
        var da = eval("document.all.meizzDay"+i)     //书写新的一个月的日期星期排列
        if (meizzWDay[i]!="")
          { 
            da.innerHTML = "<b>" + meizzWDay[i] + "</b>";
            da.style.backgroundColor = (yy == new Date().getFullYear() &&
            mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700" : "#73a6de";
            da.style.cursor="hand";
            
             var datext=da.innerText;
             
          }
        else
        {
            da.innerHTML="";
            da.style.backgroundColor="";
            da.style.cursor="default";
        }
      }
    }
    function meizzDayClick(n)  //点击显示框选取日期,主输入函数*************
    {
      var yy = meizzTheYear;
      var mm = meizzTheMonth;
      var dd = meizzTheDay;
      
        for (var i = 0; i < 37; i++)
      {
         var allda = eval("document.all.meizzDay"+i)
         allda.style.backgroundColor="#73a6de";
         
         var datext=allda.innerText;      if(datext==dd && meizzCMonth==meizzTheMonth && meizzCYear==document.all.meizzYearHead.innerText)
          {
            var da = eval("document.all.meizzDay"+i);
            da.style.backgroundColor="#FFD700";
          }
          else
          {
            if(datext==n)
            {
                var da = eval("document.all.meizzDay"+i);
                da.style.backgroundColor="#FF0000";
            }
          }
      }
      
      
      if (mm < 10){mm = "0" + mm;}
      if (outObject)
      {
        if (!n) {outObject.value=""; return;}
        if ( n < 10){n = "0" + n;}
        outObject.value= yy + "-" + mm + "-" + n ; //注:在这里你可以输出改成你想要的格式
        closeLayer(); 
      }
      else {closeLayer(); alert("Have No Object!");}
    }
    meizzSetDay(meizzTheYear,meizzTheMonth);// -->