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 に答える