我的页面底部有以下代码(在我关闭body标签之前)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="/js/main.js"></script>
我仔细检查了我的“查看源代码”,以确保链接没有被破坏,所有内容都应该存在。
在我的main.js
文件中,我有以下内容:
$(document).ready(function(){
imp_init_fields();
});
function imp_init_fields() {
if( $('.datepicker')[0] ) {
$('.datepicker').datepicker();
}
}
正如你所看到的,没有什么特别疯狂的,只是设置一个日期选择器,就像我已经做了一百万次。
现在,当我进入相关页面并点击我的文本输入时,会出现日历弹出窗口。但是,只要我尝试与日历交互(更改月份,选择日期或任何内容),就不会发生任何事情,我收到以下错误:
火狐:
时间戳:11/12/2013 2:15:31 PM错误:TypeError:o未定义 源文件: http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js 行:9
铬:
未捕获的TypeError:无法读取未定义的属性“设置”
现在我做了一百万次,所以我认为它非常简单。我想也许我有jquery和jquery-ui的冲突版本但是我去了下载遗留代码并且我得到了同样的错误。
我不明白的是,datepicker被初始化了,我可以在点击输入字段时显示它但是一旦我尝试与它交互就会中断...任何想法我在这里做错了什么?
编辑:我用未经明确的代码运行它。
火狐:
时间戳:11/12/2013 2:34:45 PM错误:TypeError:inst未定义 源文件:http://code.jquery.com/ui/1.10.3/jquery-ui.js行:8574
第8574行:
inst.selectedDay = inst.currentDay = $("a", td).html();
不幸的是,这并没有告诉我多少。我没有做任何特别花哨的事情。我没有其他的javascript,这是一个非常准确的页面。
答案 0 :(得分:4)
在@ Melonheadjr44发布了jQuery datepicker returns "inst is null" error when loaded via AJAX的链接后,它让我看看我的页面上是否有两个相互冲突的ID。
原来我做了以下事情:
<label id="client_since">Client since:</label>
<input type="text" id="client_since" name="client_since" class="datepicker" value="" />
可能不是很清楚,但我不小心用“id”换了标签上的“for”属性。由于jquery使用ID来获取我的输入框,它实际上是拉动标签而没有找到它期望找到的属性/选项。