Jquery datepicker从数组启用日期?

时间:2015-11-11 02:24:18

标签: javascript jquery datepicker

我正在尝试在datepicker中启用一些指定的日期。在我的例子中,变量“onlyThisDates”中的值。 我应该使用enabledDates选项来解决这个问题吗? 我不想禁用数组中的值。另一种方式。我想禁用所有内容,只需启用数组中的值。

如果有人可以提供帮助,那就太好了。

<input id="openDatepick></input>
var onlyThisDates = ['09/11/2015', '10/11/2015', '11/11/2015'];    

var nowDate = new Date();
var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0);

$('#openDatepick').datepicker({
    format: 'dd/mm/yyyy',
    startDate: today

}).on('changeDate', function (e) {
    //$('this').datepicker('hide');
});
$("#remove").on("click", function () {
    $('.datepicker-days').hide();
});

2 个答案:

答案 0 :(得分:4)

beforeShowDay函数中:对于您返回false的任何日期 - 将被禁用,并且对于任何日期,将返回除false之外的任何其他日期。

基于此,您的beforeShowDay应如下所示: -

beforeShowDay: function (date) {
        var dt_ddmmyyyy = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
        return (onlyThisDates.indexOf(dt_ddmmyyyy) != -1);
    }

请注意,我在javascript从0开始按月添加1 getMonth()

请参阅jsFiddle here

  

编辑:基于评论

beforeShowDay函数中我们可以定义css,工具提示等。例如,我们可以返回一个css类而不是返回true。

beforeShowDay: function (date) {
        var dt_ddmmyyyy = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
        if (onlyThisDates.indexOf(dt_ddmmyyyy) != -1) {
            return {
                tooltip: 'This date is enabled',
                classes: 'active'
            };
        } else {
            return false;
        }
    }

请参阅此jsFiddle

另请参阅this link了解bootstrap datepicker可用的不同功能。

答案 1 :(得分:0)

以下代码将使用datepicker,属性“ daysOfWeekDisabled”禁用星期几 需要星期几ID的数组

$(".dateControl").datepicker({
            daysOfWeekDisabled: [1,2,3],
            startDate: new Date(),
            autoclose: true
        })