我正在编写预订活动模块,并在我的JS文件中有以下内容来管理开始和结束日期......
(function ($) {
Drupal.behaviors.rooms_datepicker = {
attach: function(context) {
$.datepicker.setDefaults({
beforeShow: function() {
instance = $(this).data("datepicker");
if (instance.settings.startDateSelector !== undefined) {
startDate = $(instance.settings.startDateSelector).val();
format = instance.settings.dateFormat || $.datepicker._defaults.dateFormat;
if (startDate !== undefined && startDate !== '') {
var $date = $.datepicker.parseDate(format, startDate, instance.settings);
$(this).datepicker({
minDate: $date,
onSelect: function(){
var eventDate = $(this).datepicker('getDate');
$(this).datepicker("setDate", new Date(eventDate.getTime()));
eventDate.setDate(eventDate.getDate()+1);
$(this).datepicker("setDate", eventDate);
}
});
}
}
}
});
}
};
})(jQuery);
它最终变得有点混乱,但第一位有效,并且日期格式被完美检索。选择开始日期后,将为结束日期提供最小日期。
不起作用的位是自动填写结束日期为所选开始日期的+ 1天。
我一直在看这个有点太长了,我希望一双新鲜的眼睛可以指出我正在制造的那个愚蠢的错误!
答案 0 :(得分:0)
错误是eventDate
获取价值表单start_date和+1 date added
然后您在end_date datepicker中将$(this)==>$("#start_date")
问题放回setDate
。
var eventDate = $(this).datepicker('getDate');
eventDate.setDate(eventDate.getDate()+1);
$("#end_date").datepicker("setDate", eventDate);