Я пытаюсь получить массив из php (недопустимые даты) и пометить их красным в средстве выбора даты. Ниже код не заполняет unavilableDates. Что я делаю не так .. Он отображает все даты .. Спасибо за любую помощь.
$(document).on("focus", "#cust_slot1date", function () {
var unavailableDates = [];
$.ajax({
type: "GET",
url: "ddateavbl.php",
success: function (data) {
unavailableDates = data;
}
});
$("#cust_slot1date").datepicker({
dateFormat: 'D dd-M-yy',
beforeShowDay: unavailable
});
function unavailable(date) {
dmy = date.getDate() + '-' + (date.getMonth() + 1) + '-' + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ''];
} else {
return [false, '', 'Unavailable'];
}
}
});
Попробуй это,
beforeShowDay: function(date) {
if($.inArray($.datepicker.formatDate('D dd-M-yy', date ), unavilableDates) > -1)
{
return [false,"","Unavailable"];
}
else
{
return [true,'',""];
}
}
Это рабочий код, если кто-то ищет. Это решает, что первый фокус не работает и работает со второго раза.
$(document).ready(function(){
var unavailableDates = [];
$.ajax({
type: "GET",
url: "ddateavbl.php",
dataType: 'json',
success: function (data) {
unavailableDates = data;
}
});
$(document).on("focus", "#cust_slot1date", function () {
$("#cust_slot1date").datepicker({
dateFormat: 'D dd-M-yy',
beforeShowDay: function(date) {
if($.inArray($.datepicker.formatDate('dd-mm-yy', date ), unavailableDates) > -1)
{
return [false,"","Unavailable"];
}
else
{
return [true,'',""];
}
}
});
});
});