Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после вы (https://javascript.ru/forum/jquery/29740-ishhu-datepicker-s-vremenem-spiskom-vybora-mesyaca-i-vozmozhnostyu-smeny-mesyaca-posle-vy.html)

Kri0-Gen 09.07.2012 16:50

ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после вы
 
Привет.
Ищу хороший DatePicker с указанными функциям.
Немного расшифрую, что от него нужно:
1) Возможность выбора времени (чч:мм)
2) возможность выбора месяца и года в виде списка
3) после выбора числа чтобы не происходило окончательного выбора даты, а можно было ещё сменить месяц

Две первые функции есть в ui-datepicker.

Однако после щелчка по числу окно календарика закрывается и дата считается выбранной.
Мне же нужна возможность после выбора числа ещё выбрать месяц.

1 и 3 функции нашёл в неком Protoplasm datepicker:


А вот чтобы всё и сразу - никак не могу найти.
Подскажите, пж, в сторону какого календарика смотреть.

SkyLight 09.07.2012 21:54

Попробуйте поиграть с событиями того же дейтпикера, может и хватит.

Kri0-Gen 10.07.2012 11:25

Вложений: 1
Таки запилил решение на событиях ui-datepicker.
Если кому понадобится, вот код:
$(<селектор>).datepicker({ showButtonPanel: true, closeText: 'Выбрать',
					onSelect: function (dateText, dp) {
						$(this).datepicker('setDate', dateText);
						dp.show(); 
					},
					onChangeMonthYear: function (year, month, dp) {
						dp.currentMonth = month;
						dp.currentYear = year;
						var maxDay = 31;
						if (dp.currentDay > 28) {
							if (month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0))
								maxDay = 29;
							else {
								var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
								maxDay = daysInMonth[month - 1];
							}
							if (dp.currentDay > maxDay)
								dp.currentDay = maxDay.toString();
						}
						var dateStr = "";
						dateStr += dp.currentDay < 10 ? "0" + dp.currentDay : dp.currentDay;
						dateStr += ".";
						dateStr += month < 10 ? "0" + month : month;
						dateStr += "." + year;
						$(this).datepicker('setDate', dateStr);
						$(this).val(dateStr);
					}
				});


Kri0-Gen 10.07.2012 16:07

Таки обнаружилась проблема.
На dp.show(); страница прокручивается на самый верх.
Если поле, к которому прикручен календарь, находится где-нибудь внизу, то после выбора дня страница скроллится на самый верх.

upd: проблема решилась, был косяк jquery-ui.


Часовой пояс GMT +3, время: 02:40.