试图让日期选择器与自定义假期、思想和没有周末一起玩得很好

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;
        }
    }
});

JSFiddle demo