如何更改不可点击日期的jquery日期选择器css

时间:2012-07-09 11:19:02

标签: javascript jquery datepicker

我正在使用jquery日期选择器,我希望我在 beforeShowDay 函数中的日期列表应该得到不同的颜色,也无法选择或点击....下面是一些代码

我已经谷歌这个问题了很多....我找到了我的问题的一半解决方案......它改变了那些特殊日期的颜色但是可点击但我希望它们未选择 < / p>

<style type="text/css">
    td.specialDay, table.ui-datepicker-calendar tbody td.specialDay  a { 
    background: none !important;
    background-color: #fffac2 !important; 
    color: black;
     }
</style>
<script type="text/javascript"> 

    var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
      dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [true,"specialDay","Booked"];
      }
    }

    $(function() {

             $( "#datepicker" ).datepicker({

                    minDate: 0, 
                    maxDate: "+3M +10D",
                    beforeShowDay: unavailable 

                });

              });

    </script>

如果有任何解决方案请告诉我...... 感谢

3 个答案:

答案 0 :(得分:0)

在其他情况下,您需要提及false以使其不能像

那样选择
if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"specialDay","Booked"];
      }

我找到了你的问题。请检查dmy变量。并且工作正常的代码是

 var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
     var year, month, day, currDate;
     year = String(date.getFullYear());
     month = String(date.getMonth() + 1);
    if (month.length === 1) {
         month = "0" + month;
    }
    day = String(date.getDate());
     if (day.length === 1) {
         day = "0" + day;
     }
      dmy = String(day+'-'+month+'-'+year);
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"specialDay","Booked"];
      }
    }

希望这可能会有所帮助

答案 1 :(得分:0)

这对我有用...希望有这种问题的人也能帮助他们

在我的回答中,我根据那个突出显示了3分

在步骤1和2中添加此css 在第3步中编辑或复制像这样的粘贴

希望任何看到这种问题的人都能得到答案..如果没有那么告诉我..如果我可以解释更多

<style type="text/css">
  .ui-state-active  {      //1.add this
    background: blue !important;
}
.ui-state-active .ui-state-default{   //2. add this
    background: red !important;
}

</style>
<script type="text/javascript"> 

    var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
      dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"ui-state-active","booked"]; //3. edit here like this..
      }
    }

    $(function() {

             $( "#datepicker" ).datepicker({

                    minDate: 0, 
                    maxDate: "+3M +10D",
                    beforeShowDay: unavailable 

                });

              });

    </script>

答案 2 :(得分:0)

检查数组中的日期时遇到问题。请检查link这是否正常工作以及正确的方法。我希望它对你有用