我在使用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