Questo è un po 'tardi per suggerire questo, dato quanto tempo fa è stata pubblicata la domanda originale, ma questo è quello che ho fatto.
Avevo bisogno di un intervallo di 70 anni, che, sebbene non quanto 100, sono ancora troppi anni per il visitatore a scorrere. (jQuery fa passi da un anno all'altro in gruppi, ma questo è un dolore alla patologia per la maggior parte delle persone.)
Il primo passo è stato modificare il JavaScript per il widget datepicker: trova questo codice in jquery-ui.js o jquery-ui-min.js (dove sarà ridotto a icona):
for (a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)
a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";
a.yearshtml+="</select>";
E sostituiscilo con questo:
a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+
".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');
\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');
\">";
for(opg=-1;b<=g;b++) {
a.yearshtml+=((b%10)==0 || opg==-1 ?
(opg==1 ? (opg=0, '</optgroup>') : '')+
(b<(g-10) ? (opg=1, '<optgroup label="'+b+' >">') : '') : '')+
'<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";
}
a.yearshtml+="</select>";
Questo circonda i decenni (tranne quelli attuali) con tag OPTGROUP.
Quindi, aggiungi questo al tuo file CSS:
.ui-datepicker OPTGROUP { font-weight:normal; }
.ui-datepicker OPTGROUP OPTION { display:none; text-align:right; }
.ui-datepicker OPTGROUP:hover OPTION { display:block; }
Questo nasconde i decenni fino a quando il visitatore non viene utilizzato per l'anno base. Il tuo visitatore può scorrere rapidamente qualsiasi numero di anni.
Sentiti libero di usare questo; ti preghiamo di dare una corretta attribuzione nel tuo codice.