jquery日期picker beforeShowDay工作错误的月份
jquery datepicker beforeShowDay works for wrong month?
我正在使用jquery的日期选择器来选择日期,我想突出显示一些日期-但是我遇到了一个奇怪的问题与beforeShowDay。
当页面加载时,似乎加载了json数据,但是当我单击输入框并出现日期拾取器时,没有突出显示任何内容。当我点击前一个月或后一个月,从前一个月的数据被加载(例如点击输入-> datepicker出现->无高亮显示->点击下一个月->数据从前一个月出现高亮显示)…
我已经谷歌了很长时间了,检查数据是否在一切之前加载,但不知何故,这种行为并没有改变。两个日期选择器都会遇到同样的问题。
(jquery-ui datepicker 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);
}
});
});
编辑这是我从ajax响应中获得的一个示例json对象。
[{"状态":3,"天":"2013-04-10"},{"状态":3,"天":"2013-04-11"},{"状态":3,"天":"2013-04-12"},{"状态":3,"天":"2013-04-13"},{"状态":2,"天":"2013-04-10"},{"状态":2,"天":"2013-04-11"},{"状态":2,"天":"2013-04-12"},{"状态":2,"天":"2013-04-13"}]
看起来您的月份偏移了1,javascript方法date.getMonth()返回月份以零为基础(例如。1月为0,2月为1),PHP脚本以正常格式返回日期(Jan为1,Feb为2)
检查
所以如果你改变
var d = (date.getFullYear() + "-" + ("0" + date.getMonth()).slice(-2) + "-" + ("0" + date.getDate()).slice(-2));
var d = (date.getFullYear() + "-" + ("0" + date.getMonth()+1).slice(-2) + "-" + ("0" + date.getDate()).slice(-2));
你应该得到正确的月份显示
相关文章:
- JavaScript表单验证-“;“错误”;不按需要工作
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- 角度过滤器可以工作,但将输入视为未定义并抛出错误
- JS错误导致WordPress插件无法工作
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- AWS API网关返回400错误请求,但Postman工作正常
- 开机自检无法正常工作,出现错误
- ng-bind-html 工作,但抛出错误
- Javascript - 错误“未定义不是函数”在以前工作的代码上引发
- JS脚本未按预期工作,没有错误消息
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- 索引在IE中导致错误;在其他浏览器中工作
- jsPDF addHTML方法不工作,没有错误消息
- 这个get方法似乎可以工作,但控制台中存在错误
- 替换匹配函数给出了未定义的错误,但它与替换一起工作
- servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
- jqGrid-在IE中产生SCRIPT5007错误,但在localhost上工作
- JQuery停止工作,没有任何错误消息
- 403禁止错误工作灯