试图让日期选择器与自定义假期、思想和没有周末一起玩得很好
Stuck trying to get datepicker to play nice with custom holdays, mindate, and no weekends
我在 rails 应用程序上有一个 ruby 我正在使用 jquery 日期选择器。我遇到的麻烦是让我的自定义假期日期和思想是今天,没有周末让所有的人一起工作和玩耍。到目前为止,唯一有效的是我的自定义假期,即我的 var penn。任何帮助将不胜感激!
这是我的application.js
$(document).ready(function(){
var penn = ["2015-01-01","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
var ends = $('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
var today = $('#leave_start').datepicker( "option", "minDate", 0 );
$('#leave_start').datepicker({
beforeShowDay: function(date){
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ penn.indexOf(holidays) == -1];
var weekends = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ ends.indexOf(weekends) == -1];
var after = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ today.indexOf(after) == -1];
}
});
});
我试过这个并且 mindate 有效但是,我似乎不能有多个 beforeShowDays 选项。
$(document).ready(function(){
var penn = ["2015-01-01","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
$('#leave_start').datepicker({
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
beforeShowDay: function(date){
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ penn.indexOf(holidays) == -1];}
});
});
不,您不能有多个 beforeShowDay
选项。您可以做的是在一个函数中处理这两种情况:
$('#leave_start').datepicker({
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
beforeShowDay: function(date) {
var weekend = $.datepicker.noWeekends(date);
// If date is selectable (not a weekend day), check if date is a holiday.
if (weekend[0]) {
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ penn.indexOf(holidays) == -1];
} else {
return weekend;
}
}
});
我在 rails 应用程序上有一个 ruby 我正在使用 jquery 日期选择器。我遇到的麻烦是让我的自定义假期日期和思想是今天,没有周末让所有的人一起工作和玩耍。到目前为止,唯一有效的是我的自定义假期,即我的 var penn。任何帮助将不胜感激!
这是我的application.js
$(document).ready(function(){
var penn = ["2015-01-01","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
var ends = $('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
var today = $('#leave_start').datepicker( "option", "minDate", 0 );
$('#leave_start').datepicker({
beforeShowDay: function(date){
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ penn.indexOf(holidays) == -1];
var weekends = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ ends.indexOf(weekends) == -1];
var after = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ today.indexOf(after) == -1];
}
});
});
我试过这个并且 mindate 有效但是,我似乎不能有多个 beforeShowDays 选项。
$(document).ready(function(){
var penn = ["2015-01-01","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
$('#leave_start').datepicker({
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
beforeShowDay: function(date){
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date); return [ penn.indexOf(holidays) == -1];}
});
});
不,您不能有多个 beforeShowDay
选项。您可以做的是在一个函数中处理这两种情况:
$('#leave_start').datepicker({
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
beforeShowDay: function(date) {
var weekend = $.datepicker.noWeekends(date);
// If date is selectable (not a weekend day), check if date is a holiday.
if (weekend[0]) {
var holidays = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ penn.indexOf(holidays) == -1];
} else {
return weekend;
}
}
});