我正在使用jQuery的日期选择器来选择日期,我想突出显示一些日期 - 但我遇到一个奇怪的问题beforeShowDay。jQuery的datepicker beforeShowDay工作错误的月份?
当页面加载似乎加载了json数据,但当我点击进入输入框和datepicker出现时,没有任何突出显示。当我点击前进月或后退时,加载上个月的数据(例如点击输入 - >日期选择器出现 - >没有高亮 - >下个月点击 - >从前月的数据突出显示)...
现在我已经搜索了很长时间,检查数据是否在所有内容之前加载,但不知何故,这种行为并没有改变。日期选择器都遇到同样的问题。
(jQuery的UI日期选择器1.10.1,jQuery的1.9.1)
我很高兴几乎所有的暗示!
var resDates;
var done = false;
function markDate(date) {
var ret = [true, 'free'];
if (!done) {
$.ajax({
dataType: "json",
url: "modules/OutShop/getReservations.php",
data: {item_id: $("#item-id").val()},
async: false,
success: function (dates) {
resDates = dates;
done = true;
}
});
}
$.each(resDates, function(key, value) {
var d = (date.getFullYear() + "-" + ("0" + date.getMonth()).slice(-2) + "-" + ("0" + date.getDate()).slice(-2));
if (d == value["day"]) {
//$("body").append("d: " + d + ", v: " + value["day"] + ", s: " + value["status"] + " ");
//$("body").append("s: " + value["status"] + " ");
if (value["status"] == "1")
ret = [false, 'marked'];
else if (value["status"] == "2")
ret = [false, 'reserved'];
else
ret = [true, 'free'];
}
});
return ret;
}
$(document).ready(function() {
if (!done) {
$.ajax({
dataType: "json",
url: "modules/OutShop/getReservations.php",
data: {item_id: $("#item-id").val()},
async: false,
success: function (dates) {
resDates = dates;
//done = true;
}
});
}
$("#item-datepicker-min").datepicker({
showButtonPanel: true,
defaultDate: +3,
minDate: +3,
beforeShowDay: markDate,
onSelect: function(selectedDate) {
$("#item-datepicker-max").datepicker("option", "minDate", selectedDate);
}
});
$("#item-datepicker-max").datepicker({
showButtonPanel: true,
minDate: +3,
defaultDate: +6,
beforeShowDay: markDate,
onSelect: function(selectedDate) {
$("#item-datepicker-min").datepicker("option", "maxDate", selectedDate);
}
});
});
EDIT 如需进一步信息:这是一个例子JSON对象我从Ajax响应了。
[{“status”:3,“day”:“2013-04-10”},{“status”:3,“day”:“2013-04-11”},{“status “:3,” 日 “:” 2013年4月12日 “},{” 状态 “:3,” 日 “:” 2013年4月13日 “},{” 状态 “:2”,日 “:” 2013 -04-10 “},{” 状态 “:2”,日 “:” 2013-04-11 “},{” 状态 “:2”,日 “:” 2013年4月12日 “},{” 状态“:2,”day“:”2013-04-13“}]
所以你说,它的作品确定为各月不同之处在于显示的一个原来?你可以发布resDates的内容(或其样本) – DaveB 2013-03-13 20:12:20
不是。它在初始化时不显示任何内容,然后 - 在切换一个月之后 - 例如,当我在五月份时,在四月的日期中添加了。顺便说一句 - php脚本只是输出每一个日期,所以它不能为错误的月份提供数据。 – RalphP 2013-03-15 20:26:49