Это будет трудно обойти. Это непросто сделать. Вот то, что я до сих пор:
https://jsfiddle.net/Twisty/ge6zh5es/6/
HTML
<p>Date:
<input type="text" id="datepicker" class="Highlighted" />
</p>
JavaScript
$(function() {
var minYear = 2006,
maxYear = new Date().getFullYear();
maxYear++;
var $dp = $("#datepicker").datepicker({
changeYear: true,
dateFormat: "dd-mm-yy",
yearRange: minYear + ':' + maxYear,
});
$dp.datepicker("setDate", "0");
function changeSpinner($dpObj) {
var $yearSpin = $("<input>");
$yearSpin.addClass("ui-datepicker-year");
$yearSpin.attr({
type: "number",
min: minYear,
max: maxYear,
value: new Date().getFullYear()
}).data("handler", "selectYear").data("event", "change");
$yearSpin.on("change", function() {
console.log("Spinner Change Event.");
var pDate = $dpObj.datepicker("getDate");
pDate.setFullYear(parseInt(this.value));
console.log("New Date: " + pDate);
$dpObj.datepicker("setDate", pDate);
});
console.info("Created Spinner: ", $yearSpin);
$dpObj.datepicker("widget").find(".ui-datepicker-year").replaceWith($yearSpin);
}
$("#datepicker").click(function() {
changeSpinner($dp);
}).change(function() {
changeSpinner($db);
});
});
Это работает только в первый раз. Сам datepicker не имеет никаких событий, которые я могу подключить для выполнения замены каждый раз. Я также должен добавить некоторые функции, чтобы этот новый элемент правильно работал с datepicker.
Я рассматриваю возможность удаления элементов заголовка и их разделения. Я уточню этот ответ более подробно. Другой вариант - скрыть элемент select
и поместить на него спиннер. Затем этот счетчик изменяет элемент выбора.
Просьба уточнить, хотите ли вы отрегулировать каждую часть, день, месяц и год с помощью Spinner? Подробнее: http://jqueryui.com/spinner/ Или вы спрашиваете о том, как использовать HTML5 'input type = 'number'' специально для месяца на дисплее datepicker? – Twisty
Также см .: http://jqueryui.com/datepicker/#dropdown-month-year – Twisty
только на год Мне нужно показать тип ввода HTML5 = 'номер' – Ammu