2013-12-16 30 views
0

在本網站的調查中,我發現了一種使用2個日期選擇器的方法。如果您在第一個日期選擇日期,第二個會自動顯示所選日期爲新的日期。你可以看到在行動這是我的測試服務器在這裏:http://www.zinius.nl/tripsdatepicker onClose issue

我遇到的問題在這種情況下發生: 選擇入住-日期字段,但不要選擇一個日期,然後單擊別處。您不會是 能夠使檢入日期字段的日期選擇器彈出式備份再次備份,直到您刷新整個頁面或首先選擇檢出日期。

這是我使用的代碼:我試圖與ONSELECT更換的OnClose

$("#datepicker1").datepicker({ 
showOn: 'both', 
buttonImage: 'images/ico/calendar.png', 
buttonImageOnly: true, 
minDate: 0, 
firstDay: 0, 
dateFormat: 'mm-dd-yy', 
changeMonth: false, 
numberOfMonths: 1, 
onClose: function(selectedDate) { 
    var minDate = $(this).datepicker('getDate'); 
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1)); 
    $("#datepicker2").datepicker("option", "minDate", newMin); 
    $("#datepicker2").datepicker("show"); 
} 
}); 
$("#datepicker2").datepicker({ 

showOn: 'both', 
buttonImage: 'images/ico/calendar.png', 
buttonImageOnly: true, 
minDate: '+1d', 
changeMonth: false, 
firstDay: 0, 
dateFormat: 'mm-dd-yy', 
numberOfMonths: 1, 
onClose: function(selectedDate) { 
} 
}); 

。這解決了這個問題,但是當我在datepicker1上選擇一個日期時,datepicker2出現並消失在閃存中。

有沒有人有解決方案來正常工作?

謝謝 Guilliano

+0

onClose檢查是否定義了minDate,以及是否攜帶腳本的其餘部分。 – MarcoL

回答

0

嘗試

..., 
onClose: function(selectedDate) { 
    var minDate = $(this).datepicker('getDate'); 
    if(minDate){ 
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1)); 
    $("#datepicker2").datepicker("option", "minDate", newMin); 
    $("#datepicker2").datepicker("show"); 
    } 
} 
+0

這工作就像一個魅力!非常感激!! – zini

0

在控制檯想要更改第一日期選擇您的onClose功能,我可以看到被記錄此錯誤:

無法調用null的方法'getDate'

這意味着你的語句:

var minDate = $(this).datepicker('getDate'); 

引起的問題。你可以做的是首先檢查selectedDate(傳遞給onClose回調)是否有效,然後嘗試getDate

onClose: function(selectedDate) { 
    if (selectedDate) { 
     ... 
    } 
} 
+0

你是對的。用Marco提供的條件性陳述來解決它。謝謝您的幫助! – zini