启用某些特定日期后禁用 pickadate (JavaScript) 中的日期
Disable dates in pickadate (JavaScript) after enabling some specific dates
我正在使用 pickadate 库,因此用户可以 select 约会。默认情况下应禁用所有日期。这通过添加 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");
在此之后我启用了一些 dates:
picker.set('disable', activeDays);
现在我希望能够将工作日列入黑名单。例如,所有星期一和所有星期三都应始终被阻止。我在另一个变量中有这个数据:
var disabledDates = [1, 3];
如何确保在启用某些特定日期后禁用工作日?
您可以使用 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);
不要忘记在禁用日期之前启用它们。在这种情况下,它们不会翻转到相反的值。
查看下面的代码:
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/
我正在使用 pickadate 库,因此用户可以 select 约会。默认情况下应禁用所有日期。这通过添加 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");
在此之后我启用了一些 dates:
picker.set('disable', activeDays);
现在我希望能够将工作日列入黑名单。例如,所有星期一和所有星期三都应始终被阻止。我在另一个变量中有这个数据:
var disabledDates = [1, 3];
如何确保在启用某些特定日期后禁用工作日?
您可以使用 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);
不要忘记在禁用日期之前启用它们。在这种情况下,它们不会翻转到相反的值。
查看下面的代码:
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/