установить minDate следующего экземпляра datepicker на основе предыдущей даты datepicker + 1 день - PullRequest
0 голосов
/ 28 ноября 2011

HTML

<label for="checkIn">Check in</label>
<input type="text" readonly="readonly" name="checkIn" id="checkIn"   />
<label  for="checkOut">Check out</label>
<input type="text"  readonly="readonly" name="checkOut" id="checkOut"   />

javaScript

var dates = $( "#checkIn, #checkOut" ).datepicker({
               autoSize: true,
               minDate: "+0",
               maxDate: "+6M",
               onSelect: function( selectedDate ) {
                     var option = this.id == "checkIn" ? "minDate" : "maxDate",
                     instance = $( this ).data( "datepicker" ),
                     date = $.datepicker.parseDate(
                                 instance.settings.dateFormat 
                              || $.datepicker._defaults.dateFormat,
                                  selectedDate, instance.settings );
                    dates.not( this ).datepicker( "option", option, date );
                }
   });

Теперь я хочу, чтобы каждый раз, когда пользователь устанавливал любую дату для checkIn, checkOut должен быть рядом с этой выбранной датойнаряду со всеми остальными вариантами.

см. fiddle для того же

Я много пробовал, но безуспешно.Пожалуйста, помогите мне, какую логику применять?

Ответы [ 2 ]

2 голосов
/ 15 мая 2013

shennyL ответ не учитывал выбранную дату + n.

Итак:

На вашем #checkIn месте:

minDate: 0, //sets the minDate offset to 0, meaning today.
onSelect: function() {
             var date = $(this).datepicker('getDate');
             if (date) {
                  date.setDate(date.getDate() + 1);
                  $("#checkOut").datepicker("option", "minDate", date)
             }
          }

Насколько я могу судить, это работает вполне нормально. Возможно, вам просто нужно почистить код на скрипке?

2 голосов
/ 28 ноября 2011

Попробуйте разделить поля и запустить DatePicker отдельно, а затем попробуйте это:

    $('#date1').datepicker({
        constrainInput: true, 
        dateFormat: 'D, dd M yy',
        // Once change, set date2 min date
        onSelect: function (dateText, inst) {
            $('#date2').datepicker("option", "minDate", dateText);
        }
    });

    $('#date2').datepicker({
        constrainInput: true, 
        minDate: 0,
        dateFormat: 'D, dd M yy'
    });

Надеюсь, эта помощь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...