2015-11-25 49 views
0

我使用我的網站上,有開始和結束日期選擇以下日期選擇器:如何在引導日期選擇器動態最大結束日期

https://bootstrap-datepicker.readthedocs.org/en/latest/index.html

的規則是:

  • 開始日期可以是今天+ 30天之間,沒有更多的
  • 結束日期可以選擇的開始日期不超過1年後

所以當窗體加載時,我已經將endDate選項設置爲「+ 1y -1d」,這非常棒。但是,例如,如果客戶選擇+30天的開始日期,則我需要第二個字段的endDate選項再次延伸到「當前開始日期+ 1y -1d」。

我已經開始了代碼,但真的不知道如何達致這:

<script type="text/javascript"> 
    $(function() { 

     $(".startdate").datepicker({ 
      format: 'd MM yyyy', 
      startDate: '+0d', 
      endDate: '+30d', 
      autoclose: true, 
      startView: 0, 
      minViewMode: 0, 
      todayHighlight: true, 
      orientation: "top" 
     }); 
     $(".enddate").datepicker({ 
      format: 'd MM yyyy', 
      startDate: '+1d', 
      endDate: '+1y -1d', 
      autoclose: true, 
      startView: 0, 
      minViewMode: 0, 
      todayHighlight: true, 
      orientation: "top" 
     }); 

     $("#startdate").change(function() { 

      var startdate = new Date ( $("#startdate").val()) ; 
      //alert(startdate); 
      var newendatemaximum; 

      $(".enddate").datepicker({ 
       endDate: ??????? 
      }); 
     }); 

    }); 
</script> 

進展中的工作方案:

$(".startdate").change(function() { 
      //alert("start date change"); 
      var newendatemaximum = new Date ( $(".startdate").val()) ; 
      newendatemaximum.setYear(newendatemaximum.getFullYear() + 1); 
      alert(newendatemaximum); 
      $(".enddate").datepicker("option", "endDate", newendatemaximum); 
     }); 

回答

0

您不必使用JSON來設定日期選擇器選項。你可以直接設置它們。一旦你有最新的最新日期,你可以直接設置該選項:

$("#startdate").change(function() { 
     var newendatemaximum = new Date ( $("#startdate").val()) ; 
     newendatemaximum.setYear(newendatemaximum.getFullYear() + 1); 
     $(".enddate").datepicker("option", "endDate", newendatemaximum); 
    }); 
+0

請提供你寫的代碼的解釋。 – JRodDynamite

+0

感謝您的幫助。我已經嘗試過你的代碼(雖然在startdate上替換了#),但它不起作用。看到我正在嘗試編輯原始問題的確切代碼。警報如預期。但是enddate字段仍然是11月25日(+ 1y -1d),當頁面加載時設置。無論我開始什麼日期,我都會嘗試。 –

+0

我最後一次評論後的任何想法?我一定希望得到這個固定的? –

相關問題