根据第一个更改第二个datepicker的minDate

时间:2012-09-28 02:20:21

标签: jquery-ui onselect

我在同一页面中有两个datePickers,我想根据第一个更改第二个datepicker的minDate。这是我的代码:

$("#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将根据此设置,但是当我重新选择第一个时,第二个datePicker的minDate将不再更改,它会保留。我不知道为什么。请帮忙!!

我只想在第一个的选定日期发生变化时,第二个的minDate会发生变化。

3 个答案:

答案 0 :(得分:0)

您错误地更新了第二个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});
      }
});

答案 1 :(得分:0)

$("#strStartDate").datepicker({ 
  dateFormat: 'dd/mm/yy', 
  constrainInput: true,
  firstDay: 1,
  hideIfNoPrevNext: true,
  onSelect: function(){
        if ($("#strStartDate").val() > $("#strEndDate").val()){
            $("#strEndDate").val($("#strStartDate").val());
        }
  }

});

$("#strEndDate").datepicker({ 
  dateFormat: 'dd/mm/yy', 
  constrainInput: true,
  firstDay: 1,
  hideIfNoPrevNext: true,
  beforeShow: function (input, inst) {
        inst.settings.minDate = $("#strStartDate").val();
 }

});

答案 2 :(得分:0)

您可以使用以下代码更新第二个日期选择器的注意事项:

 $( "#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'

});