2011-11-03 50 views
1

如何修改此功能,以#datepicker2的值更改为#datepicker1的日期加上一天,如果#datepicker1的日期是#datepicker2的日期之后?jQuery的日期选择器功能修改

因此,如果#datepicker1和#datepicker两个的默认日期分别是11/03/2011和11/04/2011,并且我将#datepicker1更改为2011年11月25日,#datepicker2应该填充11/26/2011。

但是,如果我改变#datepicker1,比如说,10/28/2011#datepicker2保持不变。

继承人的jsfiddle - >http://jsfiddle.net/hJrzp/1/

$(function() { 
    var dates = $("#datepicker1, #datepicker2").datepicker({ 
    // minDate: new Date(), 
    // maxDate: '+2y', 
     defaultDate: "+1d", 
     showOtherMonths: true, 
     selectOtherMonths: true, 
    // changeMonth: true, 
     numberOfMonths: 1, 
     onSelect: function(selectedDate) { 
      var option = this.id == "datepicker1" ? "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); 
     } 
    }); 
}); 
+0

我们可以简化这个问题,说要求是当'datepicker1'变化,'datepicker2'设置为'datepicker1'日期加上一天?这是一个准确的陈述还是我错过了什么? – arb

回答

1

您应该能够添加一个一天的日期选择器是第一个(即#datepicker1)。这涉及一些日期算术。因此,onSelect功能将类似于:

onSelect: function(selectedDate) { 
     var option = this.id == "datepicker1" ? "minDate" : "maxDate", 
      instance = $(this).data("datepicker"), 
      date = $.datepicker.parseDate(
       instance.settings.dateFormat || 
       $.datepicker._defaults.dateFormat, 
       selectedDate, instance.settings); 
     if (this.id == 'datepicker1') { 
      var oneDay = 1000*60*60*24; 
      var plusOneDay = new Date(date.getTime() + oneDay); 
      dates.not(this).datepicker("option", option, plusOneDay); 
     } else { 
      dates.not(this).datepicker("option", option, date); 
     } 
    } 

在操作中查看:http://jsfiddle.net/william/hJrzp/2/

+0

这是完美的,谢谢! – David