2012-09-13 63 views
6

在jQuery datePicker有點問題,我懷疑這只是我忽略或錯誤的設置的問題。jquery datepicker年度範圍默認

如果你看一下這個簡單的小提琴:JS Fiddle

你會看到我給自己定了一年的範圍,使在默認情況下,當您點擊輸入,將打開它在1994年,但如果然後點擊這些日期中的任何一個,例如9月3日,它實際上將它作爲2012年的輸入,而不是在下拉菜單中選擇的年份。

我該如何使它使用正確的年份,而不必更改下拉菜單然後將其更改回來?

乾杯。

+0

也許它已填寫的錯誤code.google.com/p/jquery-datepicker/issues/detail?id=177 – Adrian

+0

這是不一樣的錯誤,這可能是... –

+0

它似乎是一個Datepicker Jquery插件的bug ...我有同樣的問題:'yearRange:「1994:2010」' – Aelios

回答

5

奇怪的是,但將defaultDate:"1994-01-01"添加到datepicker選項似乎可以解決它。

Fiddle

0

我想我的原因.. 這是因爲yearRange:只是限制在只有下拉菜單的範圍內。 它只是改變名單沒有別的。

他們的豪宅這個在這裏..

http://jqueryui.com/demos/datepicker/#option-yearRange [注:此選項僅影響出現在下拉列表,以限制其歷史可以選擇使用的minDate和/或的maxDate選項]

要證明這一點..設置日期選擇器如下,你會發現所有日期禁用。 因爲它鋸開我們2012不是1994年

$('.datePicker').datepicker({ 
     dateFormat: 'yy-mm-dd', 
     changeYear: true, 
     changeMonth: true, 
     yearRange: "-18:-12", 
     maxDate: new Date(2012,1-1,1) 

    }); 

的壓延機中要解決它,你必須使用defaultDate還有的minDate和的maxDate

我希望我清楚

7

正如其他人所建議的,你必須設置defaultDate。但是,與其他解決方案不同,您不希望對日期進行硬編碼,因爲自從您執行相關列表以來,隨着時間的推移,您的下拉列表將會更新。

試試這個...

function loadDatePicker() { 
    $('.datePicker').datepicker({ 
     dateFormat: 'yy-mm-dd', 
     changeYear: true, 
     changeMonth: true, 
     yearRange: "-18:-12", 
     defaultDate:"-18y-m-d" // Relative year/month/day 
    }); 
} 
+0

謝謝。我將它併入的方式是將當前年份減少18,並堅持這一點,而不是實際的硬編碼年份,但我也會嘗試一下。 –

+1

@jascav這是最好的方法。 – programmer138200

+0

這應該是最好的答案,因爲它沒有硬編碼或計算的工作。 –