我在使用jquery datepicker的Rails应用程序中有一个ruby。我遇到的麻烦是获取自定义的假期日期和注意事项,这是今天的事,没有周末,所有工作和一起玩都很好。到目前为止,唯一有效的工作是我的自定义假期,即我的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];

    }



   });
});


我尝试了这一点并进行了修改,但是,似乎我不能有多个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

10-07 12:28
查看更多