2012-10-19 29 views
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()]); 
}); 

最後,使用該功能來構建日期和通他們的日期選擇器插件

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' 
}); 

的問題是,它的第一次,如果我選擇另一個值不會了,因爲如果數組是空的

在此先感謝

+0

嗯...難道只是因爲你叫'eventsDates'兩個陣列和在改變綁定元素?如果它是全球性的,你基本上覆蓋它第一次你「改變」選擇 – Tallmaris

回答

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) { 
+0

另一個問題: 如果我以前沒有選擇的東西,但點擊輸入框,選擇與datepicker日期輸入框不起作用 – roybatty

+0

事實上,這是未使用任何值初始化'selectedEventDates'變量的情況。我已將我的答案更新爲默認選項中的第一個選項。讓我知道這是否解決了這個問題 – Bogdan

相關問題