未捕获的TypeError:无法读取属性' 0'未定义的jquery datepicker

时间:2014-04-03 11:56:34

标签: jquery jquery-ui datepicker

我有datepicker的以下jQuery代码,我收到错误Uncaught TypeError: Cannot read property '0' of undefined。 我想在beforeShowDay回调中做一些计算,但由于这个错误,我无法这样做。我正在使用jQuery 1.10.2和jQuery-ui 1.10.4

我发现了一个类似的问题,但没有一个解决方案似乎有效:

datepicker Error = Uncaught TypeError: Cannot read property '0' of undefined

$(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)
            }
    });
});

3 个答案:

答案 0 :(得分:3)

它与您的关联问题看起来是同一个问题:

您需要从beforeShowDay回调中返回一个数组。

我已使用此更新fiddle here

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

并记录所有日期而不抛出未捕获的TypeError。

答案 1 :(得分:0)

return函数中缺少beforeShowDay。尝试修改beforeShowDay函数,如下所示。

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

请查看beforeShowDay

的jQuery文档

答案 2 :(得分:0)

beforeShowDay

  

类型:功能(日期日期)

     

默认值:null

     

一个以日期作为参数的函数,必须返回一个数组:

     

[0] :true / false表示此日期是否可选

     

[1] :要添加到日期的单元格中的CSS类名称,或者#34;"对于默认演示文稿

     

[2] :此日期的可选弹出工具提示

     

在显示日期选择器之前,每天都会调用该函数。

beforeShowDay: function(date) {
                        var day = date.getDate();
                        var month = date.getMonth();
                        if ( day == 30 || day == 31 ) {$("#purchasedate").val(""); return [false];}
                        else{ return [true,""];}
                        },