2017-06-11 38 views
0

我嘗試通過另一個選擇器的值限制選擇器。我在這裏看着其他的問題,但他們似乎已經過時,無法正常工作jquery datepicker日期限制不起作用

我做的是以下

<p><input type="text" id="startdatepicker"></p> 
<p><input type="text" id="enddatepicker"></p> 

$(function() { 
    $("#startdatepicker") 
     .datepicker({ minDate: -1, maxDate:"" }) 
     .datepicker("option", "dateFormat", "dd.mm.yy"); 
}); 

$(function() { 
    $("#enddatepicker") 
     .datepicker({ 
      minDate: $("#startdatepicker").datepicker("getDate"), 
      maxDate: "" 
     }) 
     .datepicker("option", "dateFormat", "dd.mm.yy"); 
}); 

如何正確做到這一點?

+0

除非你建立的第一個日期之後的第二選擇器選擇,它不會像那樣工作。所以我會在選取值後使用其中的'change'事件來調用另一個上的設置。另外,我沒有看到兩次調用'datapicker()'的理由,在'minDate'和'maxDate'等構造函數選項中傳遞'dateFormat'選項。 –

回答

1

這是非常簡單的實現:

$(function() { 
    $("#startdatepicker, #enddatepicker") 
     .datepicker({ 
      minDate: -1, 
      dateFormat: "dd.mm.yy", 
     }) 
    ; 

    $('#enddatepicker') 
     .datepicker('option', 'disabled', true); 

    $('#startdatepicker').on('change', function(){ 
     var datestamp = this.value.split('.'); 

     datestamp = new Date(
      +datestamp[2], 
      +datestamp[1], 
      +datestamp[0] 
     ); 

     if (!datestamp) return false; 

     $('#enddatepicker') 
      .datepicker('option', 'disabled', false) 
      .datepicker('option', 'minDate', datestamp) 
     ; 
    }); 
}); 

https://jsfiddle.net/zvc1p8xk/