仍然试图抓住JQuery。不是很擅长。
我的html日历有问题。我可以加载当前月份自动选择。在更改下拉选项时,它会切换到该月,但不会选择日期"不可用"预订。
以下是代码:
var cal = new Calendar();
var unavailable_days_month_1 = [1,2,3];
var unavailable_days_month_2 = [4,5,6];
var unavailable_days_month_3 = [7,8,9];
var unavailable_days_month_4 = [10,11,12];
var unavailable_days_month_5 = [13,14,15];
var unavailable_days_month_6 = [16,17,18];
var unavailable_days_month_7 = [19,20,21];
var unavailable_days_month_8 = [22,23,24];
var unavailable_days_month_9 = [25,26,27];
var unavailable_days_month_10 = [28,29,30];
var unavailable_days_month_11 = [2,4,31];
var unavailable_days_month_12 = [7,9,11];
var current_date = new Date();
var current_month = (current_date.getMonth() + 1);
var current_year_month = (1900 + current_date.getYear()) + "-" + current_month;
tjq("#select-month").find("[value='" + current_year_month + "']").prop("selected", "selected");
cal.generateHTML(current_date.getMonth(), (1900 + current_date.getYear()), "unavailable_days_month_" + current_month);
tjq(".calendar").html(cal.getHTML());
tjq("#select-month").change(function() {
var selected_year_month = tjq("#select-month option:selected").val();
var year = parseInt(selected_year_month.split("-")[0], 10);
var month = parseInt(selected_year_month.split("-")[1], 10);
/* My problem starts from here */
cal.generateHTML(month - 1, year, "unavailable_days_month_" + month);
tjq(".calendar").html(cal.getHTML());
});
提前致谢。
答案 0 :(得分:1)
您的问题是您返回的是字符串,而不是数组。参考:
"unavailable_days_month_" + month
如果我是你,我会创建一个函数,如果你想做一些应该在大多数情况下工作的东西,如果用户不利用它。
function getUnavailDays (month) {
if (month === 1) return unavailable_days_month_1
if (month === 2) return unavailable_days_month_2
if (month === 3) return unavailable_days_month_3
// and so on...
return // return if none of the cases match above.
}
它可能不是最好的解决方案,但至少 。
您可以稍后使用getUnavailDays(month)
调用它。
编辑:
更好的解决方案;
function getUnavailDays (month) {
switch (month) {
case 1:
return unavailable_days_month_1
case 2:
return unavailable_days_month_2
// and so on..
default:
return
}
}