Я попробовал различные решения, представленные здесь, и они работали нормально, если вы просто хотели пару выпадающих.
Лучший (по внешнему виду и т. Д.) 'Сборщик' (https://github.com/thebrowser/jquery.ui.monthpicker)), предлагаемый здесь, в основном представляет собой копию старой версии jquery-ui datepicker с переписанным _generateHTML. Однако я обнаружил, что он больше не работает с у текущего jquery-ui (1.10.2) и были другие проблемы (не закрывается при esc, не закрывается при открытии других виджетов, имеет жестко запрограммированные стили).
Вместо того, чтобы пытаться исправить это средство выбора месяца, а не пытаться повторить тот же процесс с последним средством выбора даты, я решил подключиться к соответствующим частям существующего средства выбора даты.
Это включает переопределение:
- _generateHTML (для создания разметки средства выбора месяца)
- parseDate (как не нравится, когда нет дневного компонента),
- _selectDay (поскольку datepicker использует .html () для получения значения дня)
Поскольку этот вопрос немного устарел и уже хорошо ответил, вот только переопределение _selectDay, чтобы показать, как это было сделано:
jQuery.datepicker._base_parseDate = jQuery.datepicker._base_parseDate || jQuery.datepicker.parseDate;
jQuery.datepicker.parseDate = function (format, value, settings) {
if (format != "M y") return jQuery.datepicker._hvnbase_parseDate(format, value, settings);
// "M y" on parse gives error as doesn't have a day value, so 'hack' it by simply adding a day component
return jQuery.datepicker._hvnbase_parseDate("d " + format, "1 " + value, settings);
};
Как уже говорилось, это старый вопрос, но я нашел его полезным, поэтому хотел добавить отзыв с альтернативным решением.