Dies ist etwas spät am Tag, um dies vorzuschlagen, da die ursprüngliche Frage vor langer Zeit veröffentlicht wurde, aber das habe ich getan.
Ich brauchte eine Reichweite von 70 Jahren, die zwar nicht 100 Jahre beträgt, aber dennoch zu viele Jahre sind, als dass der Besucher sie durchblättern könnte. (jQuery geht zwar in Gruppen durch das Jahr, aber das ist für die meisten Menschen ein Problem.)
Der erste Schritt bestand darin, das JavaScript für das Datepicker-Widget zu ändern: Suchen Sie diesen Code in jquery-ui.js oder jquery-ui-min.js (wo er minimiert wird):
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>";
Und ersetzen Sie es durch:
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>";
Dies umgibt die Jahrzehnte (mit Ausnahme der aktuellen) mit OPTGROUP-Tags.
Fügen Sie dies als Nächstes Ihrer CSS-Datei hinzu:
.ui-datepicker OPTGROUP { font-weight:normal; }
.ui-datepicker OPTGROUP OPTION { display:none; text-align:right; }
.ui-datepicker OPTGROUP:hover OPTION { display:block; }
Dies verbirgt die Jahrzehnte, bis der Besucher im Basisjahr mauset. Ihr Besucher kann schnell durch eine beliebige Anzahl von Jahren scrollen.
Fühlen Sie sich frei, dies zu verwenden; Bitte geben Sie in Ihrem Code die richtige Zuordnung an.