У меня есть три разных инструмента выбора Jquery Ui, которые мне нужно разместить на одной странице.Первое средство выбора даты является обычным средством выбора даты «выбор дня», второе позволит пользователям выбирать диапазон дат за неделю, а последнее позволит пользователю выбрать дату по месяцам / годам.
Я могу заставить всех трех сборщиков дат работать по отдельности, но не могу заставить их всех работать на одной странице.По праву все три сборщика позволят мне выбирать даты по неделям, когда они все на одной странице.
Я пробовал операторы if / else, показывать скрытые выражения и еще около тысячи других вещей, о которых я мог подумать, и, похоже, ничего не работает.Любая помощь будет оценена!
Вот код для моих сборщиков даты:
//datepicker for day
$('#daypicker').datepicker();
//datepicker for week
$(function () {
var startDate,
endDate,
selectCurrentWeek = function () {
window.setTimeout(function () {
$('#weekpicker').datepicker('widget').find('.ui-datepicker-current-day a').addClass('ui-state-active')
}, 1);
};
$('#weekpicker').datepicker({
"showOtherMonths": true,
"selectOtherMonths": true,
"onSelect": function (dateText, inst) {
var date = $(this).datepicker('getDate'),
dateFormat = inst.settings.dateFormat || $.datepicker._defaults.dateFormat;
startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());
endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6);
$('#weekpicker').val($.datepicker.formatDate(dateFormat, startDate, inst.settings) + ' - ' + $.datepicker.formatDate(dateFormat, endDate, inst.settings));
selectCurrentWeek();
},
"beforeShow": function () {
selectCurrentWeek();
},
"beforeShowDay": function (date) {
var cssClass = '';
if (date >= startDate && date <= endDate) {
cssClass = 'ui-datepicker-current-day';
}
return [true, cssClass];
},
"onChangeMonthYear": function (year, month, inst) {
selectCurrentWeek();
}
}).datepicker('widget').addClass('ui-weekpicker');
$('.ui-weekpicker').on('mousemove', 'tr', function () {
$(this).find('td a').addClass('ui-state-hover');
});
$('.ui-weekpicker').on('mouseleave', 'tr', function () {
$(this).find('td a').removeClass('ui-state-hover');
});
});
//datepicker for month/year
$( "#monthpicker" ).datepicker({
dateFormat: "mm/yy",
changeMonth: true,
changeYear: true
});
А вот HTML:
<div class="day">
<label for="daypicker">Month</label>
<input class="datepicker" type="text" id="daypicker">
</div>
<div class="week">
<label for="weekpicker">Month</label>
<input class="datepicker" type="text" id="weekpicker">
</div>
<div class="month">
<label for="monthpicker">Month</label>
<input class="datepicker" type="text" id="monthpicker">
</div>