2012-09-13 14 views
6

Avendo un po 'un problema con il JQuery datePicker, ho il sospetto che sia solo l'aspetto di un'impostazione che ho trascurato o che ho sbagliato.jquery datepicker anno intervallo predefinito

Se si guarda a questo semplice violino: JS Fiddle

Vedrai ho impostato l'intervallo di anni, in modo che l'impostazione predefinita quando si fa clic sull'ingresso si aprirà in su nel 1994, ma se fai quindi clic su una di quelle date, ad es 3 settembre, verrà effettivamente inserito nell'input come 2012 ancora, piuttosto che l'anno selezionato nel menu a discesa.

Come posso fare in modo che utilizzi l'anno corretto senza dover cambiare il menu a discesa e quindi modificarlo di nuovo?

Cheers.

+0

forse è già piena di bug code.google.com/p/jquery-datepicker/issues/detail?id=177 – Adrian

+0

Questo non è lo stesso bug che questo potrebbe essere ... –

+0

Sembra essere un bug del plugin Jquery di Datepicker ... Ho lo stesso problema con: 'yearRange:" 1994: 2010 "' – Aelios

risposta

5

Strano, ma aggiungere defaultDate:"1994-01-01" alle opzioni datepicker sembra risolverlo.

Fiddle

0

Penso che ho avuto la ragione .. E 'a causa yearRange: basta limitare la gamma in un solo menu a discesa. Semplicemente cambia la lista nient'altro.

Essi palazzo questa qui ..

http://jqueryui.com/demos/datepicker/#option-yearRange [Si noti che questa opzione ha effetto solo ciò che appare nel menu a discesa, per limitare che risale può essere scelto utilizzare le opzioni MaxDate MinDate e/o.]

Per esporre questo ... impostare il selettore di date come sotto e troverete tutte le disabilitazione di data. perché ci segare la calandra del 2012 non 1994

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

    }); 

Per risolvere il problema è necessario utilizzare defaultDate così come MinDate e MaxDate

Spero chiaro

7

Come altri hanno suggerito, devi impostare il valore predefinito. Tuttavia, a differenza delle altre soluzioni, non si desidera codificare la data poiché l'elenco a discesa verrà aggiornato con il passare degli anni poiché si sta facendo un elenco relativo.

Prova a modificare la ...

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

Grazie. Il modo in cui l'ho incorporato è stato quello di decrementare la corrente a partire da 18 anni e tenerlo presente piuttosto che in un vero e proprio anno hard, ma cercherò anche il tuo. –

+1

@jascav Questo è il modo migliore. – programmer138200

+0

Questa dovrebbe essere la risposta migliore, poiché fa il lavoro senza hardcoding o computazione. –