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 значение true.
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 делает шаг через год в группах, но это боль в патути для большинства людей.)
первым шагом было изменение 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 лет назад относительно текущего года.