【问题标题】:Automatically set end time when start time is changed更改开始时间时自动设置结束时间
【发布时间】:2022-10-19 14:45:54
【问题描述】:
我正在使用daterangepicker 选择约会的开始时间和结束时间。目前,当开始时间改变时,结束时间变得相同。
一旦开始时间改变,我希望结束时间自动增加一个小时。
这是我的代码
$(function () {
$('input[name="appt_time"]').daterangepicker({
timePicker: true,
timePicker24Hour: true,
timePickerIncrement: 5,
timePickerSeconds: false,
locale: {
format: 'HH:mm'
}
}).on('show.daterangepicker', function (ev, picker) {
picker.container.find(".calendar-table").hide();
});
})
【问题讨论】:
标签:
jquery
daterangepicker
【解决方案1】:
很晚而且不是那么优雅,但是由于 Daterangepicker 的选项有限,我构建了这个解决方案:
$('.calendar.left').on('change', function(ev) {
// Checks if left hour select (startDate) was changed
if(ev.target.className === 'hourselect') {
// Increases endDate by 1 hour
$('input[name="appt_time"]').data('daterangepicker').setEndDate(moment($('input[name="appt_time"]').data('daterangepicker').startDate).add(1, 'hours'))
// Updates view and select
$('input[name="appt_time"]').data('daterangepicker').updateView()
$($('.hourselect')[1]).val($('input[name="appt_time"]').data('daterangepicker').endDate.format('HH'))
}
});