jQuery UI: Datepicker установить год диапазон выпадающего списка до 100 лет
С помощью Datepicker выпадающий год по умолчанию показывает только 10 лет. Пользователь должен нажать на последний год, чтобы получить больше лет добавил.
Как мы можем установить начальный диапазон в 100 лет, чтобы пользователь видел большой список по умолчанию?
function InitDatePickers() {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
maxDate: '@maxDate',
minDate: '@minDate'
});
}
5 ответов:
вы можете установить диапазон года, используя эту опцию в документации здесь http://api.jqueryui.com/datepicker/#option-yearRange
yearRange: '1950:2013', // specifying a hard coded year range
или так
yearRange: "-100:+0", // last hundred years
документы
по умолчанию: "c-10:c+10"
диапазон лет, отображаемых в раскрывающемся списке год: либо относительно текущего года ("- nn:+nn"), либо относительно текущего выбранного года ("c-nn:c+nn"), абсолютного ("nnnn:nnnn"), либо комбинации эти форматы ("nnnn:-nn"). Обратите внимание, что этот параметр влияет только то, что отображается в раскрывающемся меню, чтобы ограничить даты могут быть выбраны использовать minDate и maxDate.
Это прекрасно работало для меня.
ChangeYear:- при значении true указывает, что ячейки предыдущего или следующего месяца указаны в календаре текущего месяца можно выбрать. Эта опция используется с опциями.showOtherMonths set к истине.
YearRange:- задает диапазон лет в раскрывающемся списке год. (Значение по умолчанию: "-10:+10")
пример:
$(document).ready(function() { $("#date").datepicker({ changeYear:true, yearRange: "2005:2015" }); });
обозначения :- установить диапазон года в jQuery datepicker
Я сделал так:
var dateToday = new Date(); var yrRange = dateToday.getFullYear() + ":" + (dateToday.getFullYear() + 50); and then yearRange : yrRange
здесь
50
- это диапазон от текущего года.
Это немного поздно в тот день, чтобы предложить это, учитывая, как давно был опубликован исходный вопрос, но это то, что я сделал.
мне нужен был диапазон 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; }
это скрывает десятилетия, пока посетитель не наведет курсор мыши на базовый год. Ваш посетитель может быстро прокрутить любое количество лет.
не стесняйтесь использовать это, просто, Пожалуйста, дайте ссылки на источник в код.
Я хотел реализовать datepicker, чтобы выбрать дату рождения, и у меня были проблемы с изменением
yearRange
как это не похоже на работу с моей версией (1.5). Я обновил до последней версии jQuery-ui datepicker здесь:https://github.com/uxsolutions/bootstrap-datepicker.затем я узнал, что они предоставляют этот очень полезный инструмент на лету, так что вы можете настроить весь datepicker и посмотреть, какие настройки вы должны использовать.
вот как я узнал, что вариант
defaultViewDate
Это вариант, который я искал, и я не нашел никаких результатов поиска в интернете.
Итак, для других пользователей: Если вы также хотите предоставить datepicker для изменения даты рождения, я предлагаю использовать этот код:
$('#birthdate').datepicker({ startView: 2, maxViewMode: 2, daysOfWeekHighlighted: "1,2", defaultViewDate: { year: new Date().getFullYear()-20, month: 01, day: 01 } });
при открытии datepicker вы начнете с просмотра, чтобы выбрать годы, 20 лет назад относительно текущего года.