0

在 html 页面中有一个包含此内容的 javascript 文件

  var eventsDates = {
    "0" :["11-10-2012","21-10-2012","28-10-2012","25-11-2012","15-12-2012"],
    "10":["11-10-2012"],
    "11":["21-10-2012","28-10-2012"],
    "12":["25-11-2012","15-12-2012"]
  }

然后通过一个选择我选择ID只得到几个日期

$('#select_events').bind('change', function(){
    eventsDates = $(eventsDates[$(this).val()]);
});

最后,使用此函数构建日期并将它们传递给 datepicker 插件

function available(date) {
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
    if ($.inArray(dmy, eventsDates) != -1) {
        return [true, "","Available"];
    } else {
        return [false,"","unAvailable"];
    }
}

激活日期选择器我用这个

$('#datepickerEventi').datepicker({
    beforeShowDay:available,
    dateFormat: 'dd/mm/yy'
});

问题是,如果我选择另一个值,它第一次工作就不再工作了,就好像数组为空一样

提前致谢

4

1 回答 1

0

该数组实际上是空的,因为您在此处覆盖了该值:

$('#select_events').bind('change', function(){
    eventsDates = $(eventsDates[$(this).val()]);
});

使用另一个变量名称来缓存所选事件的日期数组。你可以把它改成这样:

// default the event dates array to the first option from events dropdown
var selectedEventDates = eventsDates[$("#select_events option:first").val()];

$('#select_events').bind('change', function(){
    selectedEventDates = eventsDates[$(this).val()];
});

并在此处更新名称:

if ($.inArray(dmy, selectedEventDates) != -1) {
于 2012-10-19T10:31:06.450 回答