4

我正在使用 pickadate 库,因此用户可以选择日期。默认情况下应禁用所有日期。这通过添加disabled: [true].

var myPicker=$("#inputDatetime").pickadate(
    {
        format:"dd. mmmm yyyy",
        formatSubmit:"yyyy-mm-dd",
        min:dt,
        selectYears:2,
        close:"Schliessen",
        today:"Heute",
        selectMonths:!0,
        disable: [true]
    }
), picker = myPicker.pickadate("picker");

在此之后,我启用了一些日期

picker.set('disable', activeDays);

现在我希望能够将工作日列入黑名单。例如,应始终阻止所有星期一和所有星期三。我在另一个变量中有这个数据:

var disabledDates = [1, 3];

在启用某些特定日期之后,如何确保禁用工作日?

4

2 回答 2

1

请看下面的代码:

var $input = $("#datepicker").pickadate({
    format: 'dd-mm-yyyy',
    formatSubmit: 'dd-mm-yyyy',
    editable: false,
    min: new Date(),
    firstDay: 0
});

var picker = $input.pickadate('picker');
picker.set("disable", [
    1,
    [2016, 5, 29],
    [2016, 6, 9],
    [2016, 8, 8]
]);

picker.set("enable", [
    [2016, 5, 19],
    [2016, 5, 26]
]);

你可以在这里测试它:http: //jsfiddle.net/2j4f9dh8/2/

于 2016-05-30T13:39:52.237 回答
0

您可以使用get方法来获取已列出的启用和禁用日期,只需推送您想要禁用的工作日索引:

picker.set('disable', activeDays);
var disabledDates = picker.get('disable').push([1, 3]);
picker.set('enable', true); // Enable all days to be sure we will not flip  disabled/enabled states
picker.set('disable', disabledDates);

不要忘记在禁用日期之前启用它们。在这种情况下,它们不会翻转到相反的值。

于 2016-05-24T11:42:54.977 回答