2014-07-21 149 views
0

我寫一個預約活動模塊,並已在我的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

錯誤是eventDate得到值的形式start_date和+1 date added然後你把問題setDate回到$(this)==>$("#start_date")到end_date datepicker。

var eventDate = $(this).datepicker('getDate'); 
    eventDate.setDate(eventDate.getDate()+1); 
    $("#end_date").datepicker("setDate", eventDate); 
+0

謝謝,但仍然無法正常工作。我用文本輸入的ID替換了#end_date,但它似乎不起作用。 – Collins

+0

你可以在jsfiddle中發佈代碼嗎? – hari

+0

爲了讓自動填充功能正常工作,我必須從原始問題中更改JS,但已設法使其工作。現在唯一的問題是當表單不在頁面上時出現錯誤,因爲JS應用於所有頁面。我需要找出一種方法,只使用啓用datepicker的表單在頁面上運行腳本。 http://jsfiddle.net/gXQ2q/ – Collins

相關問題