Це трохи пізно в день для того, щоб запропонувати це, зважаючи на те, як давно було розміщено оригінальне запитання, але це я і зробив.
Мені знадобився діапазон 70 років, який, хоча і не 100, але ще занадто багато років, щоб відвідувач прокрутився. (jQuery робить крок через рік у групах, але це біль у патуті для більшості людей.)
Першим кроком було змінити JavaScript для віджета datepicker: Знайдіть цей код у jquery-ui.js або jquery-ui-min.js (де його буде мінімізовано):
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>";
І замініть його таким:
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>";
Це оточує десятиліття (крім поточних) тегами OPTGROUP.
Далі додайте це у свій файл CSS:
.ui-datepicker OPTGROUP { font-weight:normal; }
.ui-datepicker OPTGROUP OPTION { display:none; text-align:right; }
.ui-datepicker OPTGROUP:hover OPTION { display:block; }
Це приховує десятиліття, поки відвідувач не замислиться над базовим роком. Ваш відвідувач може швидко прокрутити будь-яку кількість років.
Сміливо користуйтеся цим; просто, будь ласка, вкажіть належне віднесення у свій код.