To trochę za późno na dzień, by to zasugerować, biorąc pod uwagę, jak dawno temu zostało opublikowane oryginalne pytanie, ale to właśnie zrobiłem.
Potrzebowałem okresu 70 lat, który, mimo że nie tak duży jak 100, to wciąż zbyt wiele lat, aby odwiedzający mógł je przewijać. (jQuery przechodzi przez cały rok w grupach, ale dla większości ludzi to problem.)
Pierwszym krokiem była modyfikacja JavaScript dla widgetu datepicker: Znajdź ten kod w jquery-ui.js lub jquery-ui-min.js (gdzie zostanie zminimalizowany):
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>";
I zamień to na:
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>";
Otacza to dziesięciolecia (z wyjątkiem obecnych) tagami OPTGROUP.
Następnie dodaj to do pliku CSS:
.ui-datepicker OPTGROUP { font-weight:normal; }
.ui-datepicker OPTGROUP OPTION { display:none; text-align:right; }
.ui-datepicker OPTGROUP:hover OPTION { display:block; }
To ukrywa dziesięciolecia, dopóki odwiedzający nie myszy w ciągu roku bazowego. Twój gość może szybko przewijać dowolną liczbę lat.
Zapraszam do korzystania z tego; po prostu proszę podać poprawne informacje o kodzie w swoim kodzie.