Чтобы динамически отключить даты в jQuery Datepicker, вы можете использовать следующие методы:
- Использование параметра
beforeShowDay. Для параметраbeforeShowDayможно определить функцию, которая определяет, следует ли включать или отключать дату. С помощью этой функции вы можете программно отключить определенные даты, вернув массив со свойствомenabled, имеющим значениеfalseдля этих дат.
$(function() {
$('#datepicker').datepicker({
beforeShowDay: function(date) {
// Add your logic to disable specific dates dynamically
var disabledDates = ["2023-12-25", "2023-12-31"]; // Example disabled dates
var formattedDate = $.datepicker.formatDate('yy-mm-dd', date);
if ($.inArray(formattedDate, disabledDates) != -1) {
return [false];
}
return [true];
}
});
});
- Использование события
beforeShow: вы можете привязать функцию к событиюbeforeShowDatepicker и динамически изменять свойствоdisabledдля определенных дат. используя методsetDate.
$(function() {
$('#datepicker').datepicker({
beforeShow: function(input, inst) {
// Add your logic to disable specific dates dynamically
var disabledDates = ["2023-12-25", "2023-12-31"]; // Example disabled dates
for (var i = 0; i < disabledDates.length; i++) {
inst.dpDiv.find('.ui-datepicker-calendar .ui-state-default[data-date="' + disabledDates[i] + '"]').addClass('ui-state-disabled');
}
}
});
});
- Использование события
beforeShowс методомsetDate: аналогично предыдущему методу, вы можете привязать функцию к событиюbeforeShow, но вместо этого Чтобы изменить свойствоdisabled, вы можете использовать методsetDateдля отключения определенных дат.
$(function() {
$('#datepicker').datepicker({
beforeShow: function(input, inst) {
// Add your logic to disable specific dates dynamically
var disabledDates = ["2023-12-25", "2023-12-31"]; // Example disabled dates
for (var i = 0; i < disabledDates.length; i++) {
inst.dpDiv.find('.ui-datepicker-calendar .ui-state-default[data-date="' + disabledDates[i] + '"]').data('date', '').removeClass('ui-state-highlight');
}
}
});
});