Я использую jquery пользовательский интерфейс для выбора даты и пытаюсь отключить некоторые даты. Я искал, что мы можем достичь этого с помощью beforeShowDay при инициализации datepicker. Однако я не могу заставить его работать со следующим кодом:
$(function(){
$('.my-datepicker').datepicker({
beforeShowDay: function(d){
return [ false, "test-class", "Not available" ];
}
});
}());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<input type="text" class="form-control my-datepicker" name="StartDate" id="StartDate">
Я могу заставить его работать в приведенном выше фрагменте, но я действительно не могу понять, почему в моем реальном приложении отображается средство выбора даты, но все даты по-прежнему можно выбирать.
Когда я добавляю точку останова в возвращаемое значение beforeShowDay, код вводит эту функцию, но все еще можно выбирать все дни.
У меня заканчиваются идеи, так что, возможно, кто-то столкнулся с подобной проблемой и может дать некоторые идеи, где искать.
$(document).on('click', '.addEvent', function(){
var params = {
'SWFCustomerLocationID': $(this).data('swfcustlocid')
}
// Load the SWFCustomerDetails Modal
$.get(base_url + '/settings/components/createPickupOrDeliverySchedule.php', params, function(response){
$(document).find("#createPickupOrDeliveryScheduleForm").remove();
$(document).find('body').append(response.html);
$("#createPickupOrDeliveryScheduleForm").modal('show');
initializeInstrumentAccordion();
$('.chosen-select').chosen({width: '100%'});
var startDate = Date.parse(response.StartDate);
var endDate = Date.parse(response.EndDate);
$('#StartDate').datepicker({
startDate: new Date(startDate),
endDate: new Date(endDate),
dateFormat: 'yyyy-mm-dd',
// beforeShowDay: function(d){
// var day = d.getDate();
// if (day < 10) {
// day = "0" + day;
// }
// var month = d.getMonth() + 1;
// if (month < 10) {
// month = "0" + month;
// }
// var year = d.getFullYear();
// var dString = `${year}-${month}-${day}`;
// var result = [ false, "", "Not available" ];
// return result;
// }
beforeShowDay: function(d){
return [false, "", "Not available"];
}
});
});
})