0

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

我经常用谷歌搜索这个问题......我找到了我的问题的一半解决方案......它会改变那些特殊日期的颜色,但可以点击,但我希望它们不被选中

<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>

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

4

3 回答 3

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"];
      }
    }

希望这可能会有所帮助

于 2012-07-09T11:37:47.123 回答
0

您在检查数组中的日期时遇到问题。请检查这个工作正常的链接和正确的方法。我希望它对你有用

于 2012-07-10T07:09:46.173 回答
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>
于 2012-07-10T06:26:15.827 回答