นี่มันล่าช้าไปนิดหน่อยในวันที่จะแนะนำสิ่งนี้เนื่องจากนานแค่ไหนที่คำถามเดิมถูกโพสต์ แต่นี่คือสิ่งที่ฉันทำ
ฉันต้องการช่วงเวลา 70 ปีที่ผ่านมาซึ่งในขณะที่ไม่มากถึง 100 ปีก็ยังคงเป็นเวลานานเกินไปที่ผู้เข้าชมจะเลื่อนดู (jQuery ดำเนินการเป็นกลุ่มเป็นรายปี แต่นั่นเป็นความเจ็บปวดใน patootie สำหรับคนส่วนใหญ่)
ขั้นตอนแรกคือการแก้ไข 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; }
สิ่งนี้ซ่อนมานานหลายทศวรรษจนกระทั่งผู้มาเยี่ยมชมใช้ช่วงปีฐาน ผู้เข้าชมของคุณสามารถเลื่อนดูได้หลายปีอย่างรวดเร็ว
รู้สึกอิสระที่จะใช้สิ่งนี้; โปรดระบุที่มาที่ถูกต้องในรหัสของคุณ