Datepicker返回未捕获的类型错误:未定义'currentDay'

时间:2013-07-22 06:44:05

标签: jquery-ui twitter-bootstrap datepicker

我一直在使用带有Bootstrap的jQuery UI,我似乎遇到了一个我以前没有过的问题。我不确定发生了什么变化;我尝试过设置不同版本的jQuery,同时我没有更新jQuery UI。所以我不确定是什么破了。

当我点击datepicker中的任何日期时,控制台出错:

Uncaught TypeError: Cannot set property 'currentDay' of undefined 

代码非常简单,正如人们对日期选择器所期望的那样:

$(".datepicker").datepicker({
dateFormat: 'dd-mm-yy'
}); 

使用以下HTML:

<input type="text" class="datepicker" />

这是一个应该报告的错误(因为没有其他谷歌匹配出现)或者是我错过了什么?

8 个答案:

答案 0 :(得分:125)

我找到了解决方案。经过长时间的调试后,我发现有一个<div>具有完全相同的ID,高于输入字段。因此,脚本获取了包含ID的第一个实例,并选择了DIV而不是input字段。

我删除/重命名了DIV,它再次正常运行。

答案 1 :(得分:18)

上面的jQuery datepicker错误通常是由具有相同ID的重复控件引起的,无论您是使用id还是使用其他选择器(如css类或字段名称)来实例化它。

答案 2 :(得分:1)

我也遇到了这个错误。我发现在表格的其他地方我有一些标签&#39; for&#39;与表单输入上的id不匹配的属性 - 似乎这可能会混淆datepicker。一旦我解决了这些问题,一切正常,错误就消失了。以Andreas&#39;建议(+​​1为此!)并验证您的表单 - Chris Pederick的Web开发人员工具栏为您提供了一种简单的验证方法。

答案 3 :(得分:1)

放一个选择器。

<script>  $("#formID #duplicatedId").datepicker({language: 'he'});
</script>

FormID:包含输入的表单的ID。

duplicatedId:输入元素的ID。

答案 4 :(得分:0)

可能是两个具有相同类但没有不同ID的输入框,并且您正在尝试使用日期选择器。如果它有两个不同的ID,它将起作用。

答案 5 :(得分:0)

我也遇到了这个问题,我100%确定我没有使用重复的ID。 经过一些调试后,我发现了一个原因-我使用的是DataTables mod,它复制了tfoot的内容,因此创建了datepicker元素的精确副本。而且我的日期选择器输入行数很短。

解决了以下问题:

table.find("TFOOT").find("TR:first").remove();

哪个叫做AFTER table.DataTable(....)

此操作删除了包含所有内容的原始零高度行;

答案 6 :(得分:0)

在我的情况下,我是从div的隐藏输入字段触发datepicker的,而getPos(a)在变量“ a”上引起了未定义的消息。我尝试过将隐藏的输入字段移到div之外,从而达到了目的。请注意,无论在哪里,jQuery都可以找到输入字段,所以这不是问题-定位问题。希望这对其他人有帮助。

答案 7 :(得分:0)

我通过为HTML DOM对象创建新ID解决了这一问题。有重复的ID。 尝试为HTML DOM对象添加新ID。