我有以下代码:
<input id="aanschafdatum" type="text" name="aanschafdatum" size="40" value="" />
<input id="sel_aanschafdatum" type="hidden" value="12-05-2011" />
$(document).ready(function() {
var selected_date = document.getElementById("sel_aanschafdatum").value;
loadDatepicker('#aanschafdatum', selected_date );
});
function loadDatepicker(id, selected_date) {
if (selected_date === undefined) {
selected_date = "";
}
$(function() {
$(id).datepicker();
});
if (selected_date !== '') {
$(id).datepicker("setDate", selected_date);
}
}
此代码工作正常,当前日期“12-05-2011”将在datepicker中设置。但升级到最新版本的jQuery后,它不再起作用了。仅当我从
中删除document.ready
时
var selected_date = document.getElementById("sel_aanschafdatum").value;
loadDatepicker('#aanschafdatum', selected_date );
它有效。
我已使用jsFiddle对其进行了测试。使用jQuery 1.4.4,它工作正常;使用jQuery 1.5.2,它不会设置当前值。
希望有人可以提前帮助。
埃德
答案 0 :(得分:1)
你有错误的jQuery“语法”,可能在较新版本中他们不再原谅这样的事情了。
在函数loadDatepicker
内部,您将一些代码嵌套在$(function() {}
块中 - 这是错误的。
它应该是另一种方式,意味着$(function() {}
块应该嵌套你想要运行的函数。由于您已在$(document).ready
的上下文中使用此代码,因此只需删除$(function() {
,您就可以了:
function loadDatepicker(id, selected_date) {
if (selected_date === undefined) {
selected_date = "";
}
$(id).datepicker();
if (selected_date !== '') {
$(id).datepicker("setDate", selected_date);
}
}
更新了jsFiddle:
http://jsfiddle.net/MgWNv/5/