Uncaught TypeError: Невозможно прочитать свойство '0' неопределенного jquery datepicker

0

У меня есть следующий код 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)
            }
    });
});
  • 0
    На какую строку выдается ошибка? Или в коде JQueryUI выдается ошибка? S JSFiddle было бы полезно, если бы вы могли сбить один?
  • 0
    поехали jsfiddle.net/j7d39
Теги:
datepicker

3 ответа

3

Это похоже на ту же проблему, что и ваш связанный вопрос:

Вам нужно вернуть массив из обратного вызова beforeShowDay.

Я обновил здесь скрипку:

$("#inlinedatepicker").datepicker({
        dateFormat: "yy-mm-dd",
        minDate: 0,
        beforeShowDay: function(date){
            console.log(date);
            return [true,""];
        }
});

и он регистрирует все даты, не бросая Unipate TypeError.

0

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,""];}
                        },
0

Вам не хватает return в функцию beforeShowDay. Попробуйте изменить функцию beforeShowDay следующим образом.

beforeShowDay: function(date){
console.log(date);
return [true, "test", "test"];
}

Пожалуйста, проверьте эту документацию jQuery для beforeShowDay

Ещё вопросы

Сообщество Overcoder
Наверх
Меню