在jquery datepicker中禁用日期和特定工作日

时间:2013-12-13 14:51:52

标签: javascript jquery datepicker

我正在尝试禁用特定日期(即圣诞节等)PLUS在jQuery UI datepicker中禁用每个默认的某些工作日,但我无法让它工作。我有以下内容:

          <script type="text/javascript">
                   iDays = 2;
                   blockDays = [1,4,6];

          $(document).ready(function () {
              $.datepicker.setDefaults($.datepicker.regional['sv']);

              $('.inpDate').datepicker({
                  dateFormat: 'yy-mm-dd',
                  minDate: iDays,
                  maxDate: 14,
                  showOtherMonths: true,
                  showStatus: true,
                  beforeShowDay: noHolidays
              });

              var disabledDays = ["12-24-2013", "12-25-2013", "12-26-2013", "12-31-2013", "1-1-2014"]

              function noHolidays(date) {
                  return [!disableSpecificWeekDays(date) && !nationalDays(date)];
              }

              function nationalDays(date) {
                  var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
                  for (i = 0; i < disabledDays.length; i++) {
                      if ($.inArray((m + 1) + '-' + d + '-' + y, disabledDays) != -1 || new Date() > date) {
                          return true;
                      }
                  }
                  return false;
              }

              function disableSpecificWeekDays(date) {
                  var daysToDisable = blockDays;
                  var day = date.getDay();

                  for (i = 0; i < daysToDisable.length; i++) {
                      if ($.inArray(day, daysToDisable) != -1) {
                          return [false];
                      }
                  }
                  return [true];
              }
          }); 
   </script>

如果我只在“beforeShowDay”参数中运行disableSpecificWeekDays,它运行正常,与nationalDays相同。但由于某些原因,如果我通过noHoliday函数调用它,它会感觉它只是忽略了date参数。

总之,我需要帮助!

1 个答案:

答案 0 :(得分:1)

在回答了类似/重复的问题后,您已经注意到了自己的问题。而不是从那里复制代码,只需看看这里:Hide weekdays and specific dates of jquery datepicker