我这要求 选择一个日期后,这个日期之前的都不能选并且置为灰色。这个日期不是当天日期 是你选择之后的日期。
function meizzSetDay(yy,mm) //主要的写程序**********
{
 meizzWriteHead(yy,mm);
 //设置当前年月的公共变量为传入值
 meizzTheYear=yy;
 meizzTheMonth=mm; for (var i = 0; i < 37; i++){meizzWDay[i]=""}; //将显示框的内容全部清空
 var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay(); //某月第一天的星期几
 for (i=0;i<firstday;i++)meizzWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1 //上个月的最后几天
 for (i = firstday; day1 < GetMonthCount(yy,mm)+1; i++) { meizzWDay[i]=day1;day1++; }
 for (i=firstday+GetMonthCount(yy,mm);i<37;i++) { meizzWDay[i]=day2;day2++; }
 for (i = 0; i < 37; i++)
 {
  var da = eval("odatelayer.meizzDay"+i) //书写新的一个月的日期星期排列
 if (meizzWDay[i]!="")
 {
  //初始化边框  da.borderColorLight="#63A3E9";
  da.borderColorDark="#63A3E9";
  da.style.color="#1478eb";
  if(i<firstday)  //上个月的部分
  {
   da.innerHTML="<b><font color=#BCBABC>" + meizzWDay[i] + "</font></b>";
   da.title=(mm==1?12:mm-1) +"月" + meizzWDay[i] + "日";
   if(flag){
     da.onclick=Function("meizzDayClick(this.innerText,+0)");
   } else {
    da.onclick="";
    flag=true;
   }
     if(!outDate)
    da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() && 
     (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
      "#5CEFA0":"#f5f5f5";
   else
   {
    da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && 
    meizzWDay[i]==outDate.getDate())? "#84C1FF" :
    (((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 && 
    meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5");
    //将选中的日期显示为凹下去
    if((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && 
    meizzWDay[i]==outDate.getDate())
    {
     da.borderColorLight="#FFFFFF";
     da.borderColorDark="#63A3E9";
    }
   }
  }
  else if (i>=firstday+GetMonthCount(yy,mm))  //下个月的部分
  {
   da.innerHTML="<b><font color=#BCBABC>" + meizzWDay[i] + "</font></b>";
   da.title=(mm==12?1:mm+1) +"月" + meizzWDay[i] + "日";
   if(flag){
     da.onclick=Function("meizzDayClick(this.innerText,+0)");
   } else {
    da.onclick="";
    flag=true;
   }
   if(!outDate)
    da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() && 
     (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
      "#5CEFA0":"#f5f5f5";
   else
   {
    da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && 
    meizzWDay[i]==outDate.getDate())? "#84C1FF" :
    (((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 && 
    meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5");
    //将选中的日期显示为凹下去
    if((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && 
    meizzWDay[i]==outDate.getDate())
    {
     da.borderColorLight="#FFFFFF";
     da.borderColorDark="#63A3E9";
    }
   }
  }
  else  //本月的部分
  {
   da.innerHTML="<b>" + meizzWDay[i] + "</b>";
   da.title=mm +"月" + meizzWDay[i] + "日";
  if(flag){
     da.onclick=Function("meizzDayClick(this.innerText,+0)");
   } else {
    da.onclick="";
    flag=true;
   }
   //如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景
   if(!outDate)
    da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
     "#5CEFA0":"#f5f5f5";
   else
   {
    da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())?
     "#84C1FF":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
     "#5CEFA0":"#f5f5f5");
    //将选中的日期显示为凹下去
    if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())
    {
     da.borderColorLight="#FFFFFF";
     da.borderColorDark="#63A3E9";
    }
   }
  }
    da.style.cursor="hand"
   }
  else { da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"; }
 }
}function meizzDayClick(n,ex) //点击显示框选取日期,主输入函数*************
{
 parent.meizzTheDate=n;
 var yy=meizzTheYear;
 var mm = parseInt(meizzTheMonth)+ex; //ex表示偏移量,用于选择上个月份和下个月份的日期
 var hh=meizzTheHour;
 var mi=meizzTheMinute;
 var se=meizzTheSecond;
 //判断月份,并进行对应的处理
 if(mm<1){
  yy--;
  mm=12+mm;
 }
 else if(mm>12){
  yy++;
  mm=mm-12;
 } if (mm < 10) {mm = "0" + mm;}
 if (hh<10)  {hh="0" + hh;} //时 if (mi<10)  {mi="0" + mi;} //分 if (se<10)  {se="0" + se;} //秒getClickTime=outObject.value; if (outObject)
 {
  if (!n) { //outObject.value=""; 
   return;}
  if ( n < 10){n = "0" + n;}  WriteDateTo(yy,mm,n,hh,mi,se);
//在这判断getClickTime和outObject的值的大小。
  var tmpEndTime = new Date(outObject.value.replace(/-/g, "/")); //时间转换
  
  var tmpBeginTime;
  if(getClickTime==""){
      tmpBeginTime = 0;
      }else{
      tmpBeginTime = new Date(getClickTime.replace(/-/g, "/")); //时间转换
      }
     
    if ((tmpEndTime - tmpBeginTime) >= 0) {
         flag=true;
     } else {
        flag=false;
        outObject.value=getClickTime;
     }   closeLayer(); 
  if (bUseTime)
  {
   try
   {
    outButton.click();
   }
   catch (e)
   {
    setday(outObject);
   }
  }
 }
 else {closeLayer(); alert("您所要输出的控件对象并不存在!");}
 closeLayer();
}两个主要的函数。。 如果能帮忙可以QQ联系我 317709757 等。。