2015-11-25 47 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

我最后一次评论后的任何想法?我一定希望得到这个固定的? –

相关问题