2011-10-19 234 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()) 
    });