2011-10-19 43 views
3

我做了两个日期字段(“pickup”和“dropin”)。并且,我想确保:jQuery UI datepicker日期范围问题

  1. 接货日期应该早于下拉日期。

  2. 当用户已经选择了他的下拉和拾取日期,并且稍后他将拾取日期更改为晚于下拉日期时,那么脚本自动更改他的下拉日期比用户选择的晚。 (例如,用户把“12/07/2011”,在拾取日期和“13/07/2011”,在脱入日期后来他改变拾取日期为“13/08/2011”。如果是这样,脚本应该设置“13/08/2011”为脱入日期。

我提到的这个网站的一个线程,而且,以下是我现在有我的代码。

$.datepicker.setDefaults({dateFormat: 'dd/mm/yy'}); 
    $("#pickup").datepicker({ 
      onSelect: function(dateText, inst){ 
       var minDate = $(this).datepicker('getDate'); 
       $('#dropin').datepicker('destroy').datepicker({ 
         minDate: minDate 
        }); 
      }, 
      onClose: function(dateText, inst) { 
       if(dateText == '') { 
        $('#dropin').val(''); 
       $('#dropin').datepicker('destroy').datepicker(); 
       } 
      } 
      }); 

      $("#dropin").datepicker(); 
      var set=$("#dropin").datepicker('getDate'); 
      alert(set.getDate()); 

它看起来像是满足第一个,但是,我不知道第二个约束,并且它一直说's'为空。你能帮我这个问题? 非常感谢。

+0

是否在jQuery UI的网站帮助日期范围的例子吗? http://jqueryui.com/demos/datepicker/#date-range –

+0

恐怕不行......我对这个东西是一个新手。我找遍了所有的网页,但没有运气。我不明白为什么我得到了“空”的脱入日期。 –

+0

请你设置这个示例中jsfiddle.net,使我们更容易调试呢? –

回答

1

尝试somethig这样的:

var date = new Date(); 
    $.datepicker.setDefaults({ 
     'dateFormat' : 'yy-mm-dd', 
     'onSelect' : function(dateText, inst){ 
      instance = $(this).data('datepicker'), 
      selectedDate = $.datepicker.parseDate(
       instance.settings.dateFormat || $.datepicker._defaults.dateFormat, 
       dateText, 
       instance.settings 
      ); 
      if (this.id == 'datepicker-pickup') { 
       $('#' + 'datepicker-dropin') 
        .datepicker('option', 'minDate', selectedDate) 
        .datepicker('refresh'); 
       datePickup = dateText; 
      } 
      if (this.id == 'datepicker-dropin') { 
       $('#' + 'datepicker-pickup') 
        .datepicker('option', 'maxDate', selectedDate) 
        .datepicker('refresh'); 
       dateDropin = dateText; 
      } 
     } 
    }); 
    $('#datepicker-pickup').datepicker({ 
     'defaultDate' : datePickup, 
     'maxDate' : dateDropin 
    }); 
    $('#datepicker-dropin').datepicker({ 
     'defaultDate' : dateDropin, 
     'minDate' : datePickup, 
     'maxDate' : new Date(date.getFullYear(), date.getMonth(), date.getDate()) 
    });