我正在创建一个包含 jQuery UI Datepicker 的预订表单,现在我有一个需要帮助的主要问题:有些旅行只有特定的日子有效,并且只能在特定的月份出售,因为例如飓风季节。
禁用特定工作日的功能非常完美,但我不确定如何停用完整的月份,例如 10 月。是否可以?
任何建议都会有所帮助,这是我的代码,请告诉我是否应该更好地解释我的问题,或者是否应该添加代码的其他部分。提前致谢!
$.datepicker.setDefaults( $.datepicker.regional[ getLanguage() ] );
$( "#booking" ).datepicker({
showOn: "button",
dateFormat : 'yy/mm/dd',
buttonText: "Select",
beforeShowDay: disableSpecificWeekDays,
changeMonth: true,
changeYear: true,
minDate: 0
}
);
// 0 = monday, 1 = tuesday, 2 = wednesday, 3 = thursday, 4=friday, 5 = saturday, 6=sunday
var daysToDisable = [1, 4, 6];
function disableSpecificWeekDays(date) {
var day = date.getDay();
for (i = 0; i < daysToDisable.length; i++) {
if ($.inArray(day, daysToDisable) != -1) {
return [false];
}
}
return [true];
}
例如,使用此代码,我可以停用特定日期,但要停用整个月,我需要编写每个日期,在某些情况下,我需要为每次旅行停用至少三到四个月.
var $disableMonths = new Array("2013/10/01","2013/10/02","2013/10/03", "...");
function disableSpecificMonths(mydate){
var $return = true;
var $returnclass ="available";
$checkdate = $.datepicker.formatDate('yy/mm/dd', mydate);
for(var i = 0; i < $disableMonths.length; i++) {
if($disableMonths[i] == $checkdate) {
$return = false;
$returnclass= "unavailable";
}
}
return [$return,$returnclass];
}
但是,如果不可能停用一个完整的月份,我很想知道如何混合这两个功能,所以我将停用特定的工作日和特定日期。