[英]Trying to figure out how to strip holidays from jquery datepicker
問題是我希望能夠從我的jquery datepicker中剝離某些日期(假日)。 noWeekends可以正常工作,而其他自定義變量也可以確定我的new_day變量,但是由於某些原因,我無法使假期變量正常工作,並且無法使用戶單擊假期日期。 任何幫助將不勝感激。
應用使用
Rails 4 + jQuery
$(document).ready(function(){
var holidays = ["12-25-2015","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
function editDays(date) {
for (var i = 0; i < holidays.length; i++) {
if (new Date(holidays[i]).toString() == date.toString()) {
return true;
}
}
return false;
}
$.datepicker.setDefaults({ dateFormat: 'D, dd M yy', numberOfMonths: 3, showButtonPanel: true, beforeShowDay: editDays });
$('#leave_start').datepicker();
$('#leave_end').datepicker();
$('#leave_start_half').datepicker();
$('#leave_end_half').datepicker();
$('#future').blur(function() {
var selected = $('.future').val();
var touched = $('#indirect_id').val();
var new_day = $('.anv').val();
if (selected == 'YES') {
$('#leave_start').datepicker( "option", "minDate", new_day );
$('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end').datepicker( "option", "minDate", new_day );
$('#leave_end').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_start_half').datepicker( "option", "minDate", new_day );
$('#leave_start_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end_half').datepicker( "option", "minDate", new_day );
$('#leave_end_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
} else if (selected == 'NO') {
$('#leave_start').datepicker( "option", "minDate", 0 );
$('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end').datepicker( "option", "minDate", 0 );
$('#leave_end').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_start_half').datepicker( "option", "minDate", 0 );
$('#leave_start_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end_half').datepicker( "option", "minDate", 0 );
$('#leave_end_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
}
});
});
我嘗試了給出的答案,但是當用戶為我選擇的變量選擇“是”或“否”時,它拿走了假日變量並重新格式化為日期選擇器
$('#leave_start').datepicker( "option", "minDate", new_day);
$('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
但是當他們離開我選擇的變量時,此方法有效,但是一旦選擇“是”或“否”,假日變量就會消失。
這就是我現在可以使用的東西,但是僅當選擇的var為空且不是YES或NO時才起作用
$(document).ready(function(){
var holidays = ["12-25-2015","2015-04-03", "2015-05-25", "2015-07-03", "2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01"];
$.datepicker.setDefaults({ dateFormat: 'D, dd M yy', numberOfMonths: 3, showButtonPanel: true, beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ holidays.indexOf(string) == -1 ]
}});
$'#leave_start').datepicker();
$('#leave_end').datepicker();
$('#leave_start_half').datepicker();
$('#leave_end_half').datepicker();
$('#future').blur(function() {
var selected = $('.future').val();
var touched = $('#indirect_id').val();
var new_day = $('.anv').val();
if (selected == 'YES') {
$('#leave_start').datepicker( "option", "minDate", new_day );
$('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end').datepicker( "option", "minDate", new_day );
$('#leave_end').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_start_half').datepicker( "option", "minDate", new_day );
$('#leave_start_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end_half').datepicker( "option", "minDate", new_day );
$('#leave_end_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
} else if (selected == 'NO') {
$('#leave_start').datepicker( "option", "minDate", 0 );
$('#leave_start').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end').datepicker( "option", "minDate", 0 );
$('#leave_end').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_start_half').datepicker( "option", "minDate", 0 );
$('#leave_start_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
$('#leave_end_half').datepicker( "option", "minDate", 0 );
$('#leave_end_half').datepicker( "option", "beforeShowDay", $.datepicker.noWeekends );
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.