Il widget calendario di jQuery UI, il cosiddetto Datepicker, permette moltissime impostazioni, tra cui quella di decidere un range di anni da mostrare nel menu a tendina. La scleta dell’anno, come quella del mese, va esplicitata durante l’impostazione del widget, come mostrato qui sotto:
1 2 3 4 5 | $("#myCalendar").datepicker( { changeYear: true, changeMonth: true, yearRange: '1950:2000' }); |

jQuery UI Datapicker
Il problema è che così facendo il Datepicker mostra un baco apparentemente irrisolvibile (almeno cercando in rete). Aprendo il calendario e selezionando un giorno, senza toccare l’anno, la data restituita mostra l’anno sbagliato! Per la precisione mostra l’anno attuale! Per risolvero l’unico modo che ho trovato è stato quello di impostare il parametro defaultDate con un valore di -[anni] rispetto all’anno attuale, ovvero:
1 2 3 4 5 6 | $("#myCalendar").datepicker( { changeYear: true, changeMonth: true, yearRange: '1950:2000', defaultDate: '-61y' }); |
Il parametro defaultDate, è estremamente versatile e permette moltpici combinazioni. Inserendo un semplice procedimento automatico al posto del mio '-61y', valido ovviamente solo per l’anno 2011, questo bug può essere perlomeno nascosto, in attesa di un fixing stabile e completo.








6
Grazie, post molto utile… ci stavo diventando matto da due ore!