измените minDate второго средства выбора даты в зависимости от первого

У меня есть два datePicker на одной странице, и я хочу изменить minDate второго datepicker в зависимости от первого. Вот мой код:

$("#datepickerDepart" ).datepicker({
        dateFormat: "mm-dd-yy", 
                minDate: 0,
        onSelect: function(dateText, inst) {
          var m = dateText.substring(0,2);
          var d = dateText.substring(3,5);
          var y = dateText.substring(6,10);
          console.log(d);
          console.log(m);
          console.log(y);
          var newDate = new Date(y,m-1,d);
          console.log(newDate);
          $('#datepickerReturn').val("");
                      $('#datepickerReturn').datepicker({
              dateFormat: "mm-dd-yy",
              minDate: newDate
          })
             }
});

Но у меня есть вопрос: в первый раз, когда я выбираю дату в первом datePicker, minDate второго будет установлен в соответствии с этим, но когда я повторно выберу первый, minDate второго datePicker больше не изменится, он будет оставаться. Я не знаю почему. Пожалуйста помоги!!

Я просто хочу, чтобы minDate второго изменялась, пока выбранная дата первого изменяется.


person Ivy    schedule 28.09.2012    source источник
comment
Пожалуйста, опубликуйте свой полный код и, если возможно, пример jsFiddle.   -  person j08691    schedule 28.09.2012
comment
Вы видели демонстрацию диапазона дат? Это должно помочь.   -  person Andrew Whitaker    schedule 28.09.2012


Ответы (2)


Вы неправильно обновляете второй datepicker. Я предполагаю, что вы уже инициализировали второй ранее, хотя ваш опубликованный код не появляется. Вам нужно использовать синтаксис параметра при его обновлении вместо конструктора.

http://jqueryui.com/demos/datepicker/#option-minDate

$('#datepickerReturn').val("");
$('#datepickerReturn').datepicker({'option','minDate', newDate});

Полный код:

$('#datepickerReturn').datepicker({
              dateFormat: "mm-dd-yy",
              minDate: 0
          });
$("#datepickerDepart" ).datepicker({
        dateFormat: "mm-dd-yy", 
                minDate: 0,
        onSelect: function(dateText, inst) {
          var m = dateText.substring(0,2);
          var d = dateText.substring(3,5);
          var y = dateText.substring(6,10);
          console.log(d);
          console.log(m);
          console.log(y);
          var newDate = new Date(y,m-1,d);
          console.log(newDate);
          $('#datepickerReturn').val("");
          $('#datepickerReturn').datepicker({'option','minDate', newDate});
      }
});
person jimp    schedule 28.09.2012
comment
Хорошо. Не стесняйтесь попробовать мой, если то, что вы нашли, не работает для вас. - person jimp; 28.09.2012

Вы можете обновить второй указатель даты с помощью следующего кода:

 $( "#ddate" ).datepicker({
showOn: "button",
buttonImage: base_path+"img/date_picker.png",
buttonImageOnly: true,
onSelect: function (selectedDate) {
                    $("#rdate").datepicker("option", "minDate", selectedDate);
                },
                minDate: 'today'

}); 
$( "#rdate" ).datepicker({
showOn: "button",
buttonImage: base_path+"img/date_picker.png",
buttonImageOnly: true,
  minDate: 'today'

}); 
person Sandeep Kapil    schedule 19.02.2014