2015-11-11 244 views
0

如果彈出式日曆2在彈出式日曆1(而不是之前)設置的日期開始,那麼需要輸入開始日期和結束日期(以及未來)的客戶會發現它很有用。jquery ui datepicker beforeShow

多年來,下面的代碼工作過,在幾個不同的網站:

$("#start").datepicker({ dateFormat: 'yy-mm-dd' }); 
    $("#end").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     beforeShow: function() { 
      dt = $("#start").datepicker('getDate'); 
      return { minDate: dt }; // a JS object - dt could be 'null' (which is OK) 

我不能讓它使用jQuery UI的當前版本的工作。我在本網站上建議的ShowShow解決方案之前嘗試了一些常規解決方案,但沒有一個解決我的問題。

任何人都可以提出解決方案嗎?還是有一種解決方案比上面的代碼更少使用代碼?

+0

發佈代碼沒有問題(儘管'dt'應該是一個局部變量),問題在別處。你可以在MCVE中重現嗎? – blgt

+0

一個MCVE不會幫忙。代碼很好。它現在在我的幾個網站上運行,使用舊版本的jQuery UI。但它不適用於當前版本的jQuery UI。我需要知道爲什麼,以及我能做些什麼才能讓代碼再次運行。 –

+0

爲什麼MCVE不能提供幫助?診斷一個可以重現的問題要比你不能重複的問題容易得多 – blgt

回答

0

當我看到它正確時,你的代碼中有syntaxError。

嘗試把這個代碼,並告訴我,如果它的工作:

$("#start").datepicker({ dateFormat: 'yy-mm-dd' }); 
$("#end").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    beforeShow: myFunction 
}); 

function myFunction(){ 
    dt = $("#start").datepicker('getDate'); 
    return { minDate: dt }; 
} 
+0

據我所知,使用匿名函數而不是單獨的命名函數不僅不是語法錯誤,而是編碼加! –

+0

這不是一個答案!代碼完美無瑕,在幾個網站(私人管理區域)中都能正常工作。 –

1

我已經浪費了大家的時間。上面輸入的代碼在最新版本的jQuery UI中正常工作。沒有工作的代碼使用不同的日期格式。我不認爲這個小差異很重要,但我現在發現日期格式不僅僅是一種顯示格式,而是由小部件的方法使用。

爲了什麼是值得的,因爲我正在開發一個暑假租賃網站,並且首先設計了移動設備,我認爲顯示日期可以省掉一年。也許它可以 - 但dateFormat選項不只是顯示日期。該小部件需要默認dateFormat,或定製一年的定製dateFormat