Как отключить как выходные, так и выбранные даты в средстве выбора дат пользовательского интерфейса jquery?

#jquery #jquery-ui

Вопрос:

в идеале массив дат будет проверять мой календарь Google на наличие дат, и я хочу заблокировать эти даты в своем календаре

 <script> $(document).ready(function(){

    var dates = ["06-08-2021"];
 
    function DisableDates(date) {
    var string = jQuery.datepicker.formatDate('mm-dd-yy', date);
    return [dates.indexOf(string) == -1];
}
 


    $("#datepicker").datepicker({
        dateFormat: 'mm-dd-yy', 
        beforeShowDay: $.datepicker.noWeekends,
        beforeShowDay: DisableDates
    });

})
    </script>
 

Комментарии:

1. Избавьтесь от индекса noWeekends и проверьте день также в своей DisableDates() функции. Объекты не могут иметь дубликатов ключей

2. итак, как мне добавить обе функции?

3. Индекс воскресенья равен нулю, суббота-6

Ответ №1:

Это сработает:

 var dates = ["06-08-2021"];

function DisableDates(date) {
  var noWeekend = $.datepicker.noWeekends(date);
  if (noWeekend[0]) {
    var string = jQuery.datepicker.formatDate('mm-dd-yy', date);
    return [dates.indexOf(string) == -1];
  } else {
    return noWeekend;
  }
}

$("#datepicker").datepicker({
  dateFormat: 'mm-dd-yy',
  beforeShowDay: DisableDates
}); 
 <link href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<p>Date: <input type="text" id="datepicker"></p>