2014-07-21 8 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 값 양식의 시작일을 받고 +1 date added 그런 다음 다시 $(this)==>$("#start_date")에 문제가 당신에게 setDate이 종료일 날짜 선택기에로입니다했습니다.

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

감사하지만 여전히 제대로 작동하지 않습니다. 나는 #end_date를 텍스트 입력의 ID로 바꿨지만, 작동하지 않는 것 같습니다. – Collins

+0

jsfiddle에 코드를 게시 할 수 있습니까? – hari

+0

필자는 자동 완성 기능을 사용하기 위해 원래의 질문에서 JS를 약간 변경해야했지만 작동하도록 관리했습니다. 유일한 문제는 JS가 모든 페이지에 적용되므로 양식이 페이지에 없을 때의 오류입니다. datepicker가 활성화 된 양식이있는 페이지에서만 스크립트를 실행하는 방법을 찾아야합니다. http://jsfiddle.net/gXQ2q/ – Collins

관련 문제