Datepicker设置结束日期自动填充

时间:2014-07-21 15:45:52

标签: jquery drupal datepicker

我正在编写预订活动模块,并在我的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天。

我一直在看这个有点太长了,我希望一双新鲜的眼睛可以指出我正在制造的那个愚蠢的错误!

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);