Bootstrap 日期选择器,在 daysOfWeekDisabled 中启用几天
Bootstrap date picker, enable a few days in daysOfWeekDisabled
Bootstrap datePicker 允许我传递一个参数来禁用一周中的特定一天。像这样:
datePicker.datepicker({
daysOfWeekDisabled: weekendDays
});
我希望能够在此禁用列表上启用特定日期。我试图使用 beforeShowDay
选项,但似乎我可以禁用那里的日期,但我无法启用。
根据文档,我可以 return 如果我想选择值,我可以指向一个布尔值,或者我可以 return 一个带有 enabled
属性 的对象,像这样:
datePicker.datepicker({
daysOfWeekDisabled: weekendDays,
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
if(workingDays.indexOf(string) > -1){
return {enabled: true, classes: "test"};
}
}
});
我可以使用 beforeShowDay 添加 class,我可以禁用日期。但是我无法启用它。
有人知道我该怎么做吗?
我建议将禁用 weekend
日期和启用某些日期的操作合并为一个。
例如:
var dates = ["19/07/2020"];
function disableDates(date) {
let shouldDisable = false;
// Disable dates if they are weekends
if(date.getDay() == 0 || date.getDay() == 6){
shouldDisable = true;
}
// Check if date is mentioned for enabling in the dates array.
var string = jQuery.datepicker.formatDate('dd/mm/yy', date);
return [ !shouldDisable || dates.indexOf(string) != -1];
}
$(function() {
$("#date").datepicker({
beforeShowDay: disableDates
});
});
这将使用一个函数提供对启用和禁用日期的更多控制。
我最终解决了使用 onShow
这样的事件
datePicker.datepicker({
daysOfWeekDisabled: weekendDays,
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
if(workingDays.indexOf(string) > -1){
return {enabled: true, classes: "force-enabled-day"};
}
}
}).on('show', function(e){
$(".force-enabled-day").removeClass("disabled disabled-date");
});
我会将 Dhruv 的答案标记为正确的,因为它是一个看起来比我的解决方案更优雅的解决方案。
Bootstrap datePicker 允许我传递一个参数来禁用一周中的特定一天。像这样:
datePicker.datepicker({
daysOfWeekDisabled: weekendDays
});
我希望能够在此禁用列表上启用特定日期。我试图使用 beforeShowDay
选项,但似乎我可以禁用那里的日期,但我无法启用。
根据文档,我可以 return 如果我想选择值,我可以指向一个布尔值,或者我可以 return 一个带有 enabled
属性 的对象,像这样:
datePicker.datepicker({
daysOfWeekDisabled: weekendDays,
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
if(workingDays.indexOf(string) > -1){
return {enabled: true, classes: "test"};
}
}
});
我可以使用 beforeShowDay 添加 class,我可以禁用日期。但是我无法启用它。
有人知道我该怎么做吗?
我建议将禁用 weekend
日期和启用某些日期的操作合并为一个。
例如:
var dates = ["19/07/2020"];
function disableDates(date) {
let shouldDisable = false;
// Disable dates if they are weekends
if(date.getDay() == 0 || date.getDay() == 6){
shouldDisable = true;
}
// Check if date is mentioned for enabling in the dates array.
var string = jQuery.datepicker.formatDate('dd/mm/yy', date);
return [ !shouldDisable || dates.indexOf(string) != -1];
}
$(function() {
$("#date").datepicker({
beforeShowDay: disableDates
});
});
这将使用一个函数提供对启用和禁用日期的更多控制。
我最终解决了使用 onShow
这样的事件
datePicker.datepicker({
daysOfWeekDisabled: weekendDays,
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
if(workingDays.indexOf(string) > -1){
return {enabled: true, classes: "force-enabled-day"};
}
}
}).on('show', function(e){
$(".force-enabled-day").removeClass("disabled disabled-date");
});
我会将 Dhruv 的答案标记为正确的,因为它是一个看起来比我的解决方案更优雅的解决方案。