嗨,我有修改后的datepicker。我有一个选择范围,天数可用且不可用,颜色根据状态而变化。我使用beforeshowday之前的函数和onSelect来做这个,直到这里工作非常好。
我的问题是,现在我想要禁用任何一天的选择,我的意思是我只是想向用户显示可用的天数而不是可用的,用户可以移动几个月和几年,但他不应该点击一天。
我无法禁用当天,我无法返回虚假,这不是解决方案,否则可用日期看起来不可用。
此示例不是我的,但类似,因为您可以看到不可用的天数具有不透明度,可用日期为全彩色,因此不会丢失此视图,我希望不允许用户点击任何可用的日期,但是的,在数月和数年之间移动,点击箭头。
$("#from").datepicker({
dateFormat: 'dd-mm-yy',
minDate: new Date(),
onClose: function (selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
},
beforeShowDay: function (d) {
var dmy = (d.getMonth() + 1);
if (d.getMonth() < 9)
dmy = "0" + dmy;
dmy += "-";
if (d.getDate() < 10) dmy += "0";
dmy += d.getDate() + "-" + d.getFullYear();
console.log(dmy + ' : ' + ($.inArray(dmy, notAvailableDates)));
if ($.inArray(dmy, notAvailableDates) != -1) {
return [false, "", "Booked"];
} else {
return [true, "", "Book Now"];
}
}
});
$("#to").datepicker({
dateFormat: 'dd-mm-yy',
minDate: new Date(),
onClose: function (selectedDate) {
$("#from").datepicker("option", "maxDate", selectedDate);
},
beforeShowDay: function (d) {
var dmy = (d.getMonth() + 1);
if (d.getMonth() < 9)
dmy = "0" + dmy;
dmy += "-";
if (d.getDate() < 10) dmy += "0";
dmy += d.getDate() + "-" + d.getFullYear();
console.log(dmy + ' : ' + ($.inArray(dmy, notAvailableDates)));
if ($.inArray(dmy, notAvailableDates) != -1) {
return [false, "", "Booked"];
} else {
return [true, "", "Book Now"];
}
}
});