2013-09-25 2 views
0

Я использую this plugin2 datepickers на один поле ввода

У меня есть следующий HTML и JavaScript:

<div> 
    <div> 
     <div>Departure:</div> 
     <div><input name="departureDateInput" value="#{bean.getFormattedFromDate()}" class="datepicker datepicker1"></input></div> 
    </div> 

    <div> 
     <div>Return:</div> 
     <div><input name="returnDateInput" value="#{bean.getFormattedToDate()}" class="datepicker datepicker2"></input></div> 
    </div> 
</div> 

<script> 
    var $input2 = $(".datepicker1").pickadate({ 
     format: 'dd-mm-yyyy', 
     min: 1, 
     today: '', 
     onClose: function() { 
      var picker = $input.pickadate("picker"); 

      picker.set("select", this.component.item.select.pick); 
      picker.open(); 

     } 
    }); 

    var $input = $('.datepicker2').pickadate({ 
     format: 'dd-mm-yyyy', 
     min: 1, 
     today: '', 
     onClose: function() { 
      $("#departureDateInput").text($input2.val()); 
      $("#returnDateInput").text($input.val()); 
     } 
    }); 
</script> 

Визуализированное результат из выше 2 поля ввода, которые имеют свои собственные DatePicker. После выбора даты для первого ввода автоматически отображается вторая, и пользователь может выбрать дату.

Функциональность прекрасна, но я хочу показать пользователю только один вход, который будет заполнен данными от и до дат, например. 13-06-2013 - 15-06-2013

Я понятия не имею, как это осуществить. У кого-нибудь есть предложения?

ответ

1

Почему бы не оставить их как два отдельных сборщика даты, но нарисуйте их так, как если бы они были такими ... Я наложил их бок о бок и установил на них стиль, поэтому левая сторона не имеет правой границы и у правой нет левой границы.

Таким образом, вы получите оба значения, переданные как отдельные значения после отправки формы.

+0

Я думал сделать это, но когда пользователь выбирает вход, он должно быть предложено выбрать новый диапазон дат. Выполнение этого способа позволит пользователю получить доступ к дате 'to' :( – Skytiger

1

Вот рабочий пример, но с использованием JQuery UI: http://jsfiddle.net/kcCUD/10/

$(function() { 
    var date1 = $('#date1'); 
    var date2 = $('#date2'); 
    date1.datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 1, 
     onClose: function(selectedDate) { 
      var date = $(this).datepicker("getDate"); 

      date2.datepicker("setDate", date); 
      date2.datepicker("show"); 

     } 
    }); 
    date2.datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 1, 
     onClose: function(selectedDate) { 
      var date = $(this).datepicker("getDate"); 
      var formattedDate = $.datepicker.formatDate('mm/dd/yy', date); 

      date1.val(date1.val() + " - " + formattedDate); 
     } 
    }); 
}); 

HTML:

<input id="date1" value="" size="30" /> 
<input id="date2" style="visibility:hidden" value="" /> 
+0

Спасибо Джаспер, я хочу используйте индивидуальный выбор даты, но я увижу, могу ли я использовать некоторые из того, что вы дали мне, чтобы получить желаемый эффект. Если это сработает, я буду отмечать это как принятый ответ и изменить свой вопрос, чтобы показать, что я сделал. – Skytiger

Смежные вопросы