Jquery UI Datepicker отключить определенные c дни и все (понедельник и вторник) - PullRequest
0 голосов
/ 18 июня 2020

Я хочу отключить определенные c дни и все (понедельник и вторник), например

 var array = ["2020-03-14","2020-03-15","2020-03-16"]

    $('#datepicker').datepicker({
        beforeShowDay: function(date){
              var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
              var day = date.getDay();
              if (day != 1 && day != 2)
                  return [true]
              else if  ( array.indexOf(string) == -1)
                  return [ true]
              else
                  return [ false]

        }
    });

, но он отключает только "2020-03-16" что не так?

1 Ответ

3 голосов
/ 19 июня 2020

Рассмотрим следующий код.

jQuery(function($){
  var arr = [
    "2020-03-14",
    "2020-03-15",
    "2020-03-16"
  ];
  $('#datepicker').datepicker({
    beforeShowDay: function(dt){
      var dStr = $.datepicker.formatDate('yy-mm-dd', dt);
      var day = dt.getDay();
      var result = [false, ""];
      if (day != 1 && day != 2){
        result = [true, "available"];
      }
      if(arr.indexOf(dStr) >= 0){
        result = [true, ""];
      }
      return result;
    }
  });
});

beforeShowDay

Функция, которая принимает дату в качестве параметра и должна возвращать массив с:

  • [0]: true / false с указанием возможности выбора этой даты

  • [1]: a CSS имя класса для добавления в ячейку даты или "" для представления по умолчанию

  • [2]: дополнительная всплывающая подсказка для этой даты

https://api.jqueryui.com/datepicker/#option -beforeShowDay

Вы должны вернуть правильный массив.

...