jQuery datepicker показать в следующем месяце, если ближе к концу текущего месяца
Если текущая дата близка к концу месяца, как я могу настроить календарь на автоматическое отображение следующего месяца?
Чтобы решить вопрос о календаре, когда-либо нарушающем это.
На данный момент у меня есть:
$(predecessor+"input.datePicker").datepicker({
minDate: 0,
changeMonth: true,
dateFormat: "dd/mm/yy",
firstDay: 1,
hideIfNoPrevNext: true,
showAnim: 'slideDown',
showOn: "both",
showOtherMonths: true,
showStatus: true,
maxDate: '-1d'
});
2 ответа:
Используйте событие
beforeShow
Для установки атрибутаnumberOfMonths
$('#calendar').datepicker({ //minDate: 0, changeMonth: true, dateFormat: "dd/mm/yy", firstDay: 1, hideIfNoPrevNext: true, showAnim: 'slideDown', showOn: "both", showOtherMonths: true, showStatus: true, //maxDate: '-1d' beforeShow: function(text, inst){ var next_day = new Date( inst.selectedYear, inst.selectedMonth, inst.selectedDay ); next_day.setDate(next_day.getDate()+1); console.log(inst.selectedMonth); console.log(next_day.getMonth()); if(inst.selectedMonth != next_day.getMonth()) return {numberOfMonths: 2}; else return {numberOfMonths: 1}; } }).datepicker("setDate", "+0d" );
Демо : http://jsfiddle.net/Z44PQ/1/, выберите 30 ноября и откройте снова.
Datepicker имеет параметр defaultDate, который указывает, какой день начинается с выделенного.
Итак, если вы придумаете свою логику, чтобы определить, когда она должна начаться в следующем месяце, это должно быть довольно просто.var defaultDate = new Date(); if(advanceMonth){ defaultDate = new Date(defaultDate.getYear(), defaultDate.getMonth() + 1, 1, 0, 0,0) } $(predecessor+"input.datePicker").datepicker({ defaultDate: defaultDate });