Проблема с летней панелью прокрутки в jQuery datepicker

Я использую jQuery datepicker для выбора даты рождения заявителя, но возраст заявителя должен быть ограничен значениями от 21 до 100 лет.

Чтобы сделать выбор относительно легким, я включил выпадающие окна месяца и года, и, находясь в Великобритании, я его локализовал.

<script type="text/javascript">
$(function () {
    $(".dp1").datepicker({ changeMonth: true, changeYear: true, dateFormat: 'd MM yy', minDate: '-100y', maxDate: '-21y' });
});

Код ASP.NET MVC2 VB.NET для текстового поля выглядит следующим образом:

<%: Html.TextBox("", If(DirectCast(Model, DateTime) = DateTime.MinValue, String.Empty, ViewData.TemplateInfo.FormattedModelValue), New With {.class = "dp1"})%>

Это хорошо, но раскрывающийся год показывает только ограниченный диапазон значений и отсутствие полосы прокрутки, чтобы указать, что список лет больше, но размер ползунка полосы прокрутки не дает никаких визуальных подсказок по всему диапазону

alt text

Если вы нажмете на верхнее значение и затем отпустите раскрывающееся меню, при следующем открытии его появятся следующие значения:

alt text

Это неочевидное поведение, и я случайно наткнулся на него. Есть ли способ заставить полосу прокрутки появляться всегда и с размером ползунка, обратно пропорциональным диапазону? И если нет, то какие другие методы выбора даты, идущие назад столетие (на самом деле 99 лет были бы в порядке), рекомендуется?

Для записи, которую я использую:

  • JQuery-щ-1.8.5
  • JQuery-1.4.1

Спасибо

Криспин

Ответы

Ответ 1

Попробуйте также установить параметр yearRange (который установит диапазон лет в раскрывающемся списке). Вы можете установить его как yearRange: "-100: -21" . Обратите внимание, что установка yearRange не влияет на фактические даты, когда пользователю разрешено выбирать (вам все равно нужно установить minDate и maxDate).

Ответ 2

Ниже приведен диапазон лет от 1970 до текущего года, а также позаботится о проблеме прокрутки.

.datepicker({yearRange: "1970:+nn"});