Datepicker块选择天,而不是禁用

时间:2014-02-05 10:18:45

标签: javascript

嗨,我有修改后的datepicker。我有一个选择范围,天数可用且不可用,颜色根据状态而变化。我使用beforeshowday之前的函数和onSelect来做这个,直到这里工作非常好。

我的问题是,现在我想要禁用任何一天的选择,我的意思是我只是想向用户显示可用的天数而不是可用的,用户可以移动几个月和几年,但他不应该点击一天。

我无法禁用当天,我无法返回虚假,这不是解决方案,否则可用日期看起来不可用。

此示例不是我的,但类似,因为您可以看到不可用的天数具有不透明度,可用日期为全彩色,因此不会丢失此视图,我希望不允许用户点击任何可用的日期,但是的,在数月和数年之间移动,点击箭头。

http://jsfiddle.net/kVsbq/4/

$("#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"];
        }
    }
});

0 个答案:

没有答案