У меня есть следующий код jQuery для datepicker, и я получаю сообщение об ошибке Uncaught TypeError: Cannot read property '0' of undefined
. Я хочу сделать некоторые вычисления в обратном вызове beforeShowDay, но из-за этой ошибки я не могу этого сделать. Я использую jQuery 1.10.2 и jQuery-ui 1.10.4
Я нашел аналогичный вопрос, но ни одно из решений, похоже, не работает:
datepicker Error = Uncaught TypeError: Не удается прочитать свойство "0" неопределенного
$(document).ready(function(){
$("#inline_datepicker").datepicker({
dateFormat: "yy-mm-dd",
minDate: 0,
onSelect: function(){
fetch_time_slots($(this).datepicker("getDate"));
},
beforeShowDay: function(date){
console.log(date)
}
});
});
Это похоже на ту же проблему, что и ваш связанный вопрос:
Вам нужно вернуть массив из обратного вызова beforeShowDay
.
Я обновил здесь скрипку:
$("#inlinedatepicker").datepicker({
dateFormat: "yy-mm-dd",
minDate: 0,
beforeShowDay: function(date){
console.log(date);
return [true,""];
}
});
и он регистрирует все даты, не бросая Unipate TypeError.
beforeShowDay
Тип: Функция (Дата)
По умолчанию: null
Функция, которая принимает дату как параметр и должна возвращать массив с:
[0]: true/false, указывающий, выбрана ли эта дата
[1]: имя класса CSS для добавления в ячейку даты или "" для представления по умолчанию
[2]: дополнительная всплывающая подсказка для этой даты
Функция вызывается для каждого дня в datepicker перед ее отображением.
beforeShowDay: function(date) {
var day = date.getDate();
var month = date.getMonth();
if ( day == 30 || day == 31 ) {$("#purchasedate").val(""); return [false];}
else{ return [true,""];}
},
Вам не хватает return
в функцию beforeShowDay
. Попробуйте изменить функцию beforeShowDay
следующим образом.
beforeShowDay: function(date){
console.log(date);
return [true, "test", "test"];
}
Пожалуйста, проверьте эту документацию jQuery для beforeShowDay