Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在引导日期选择器中设置动态最大结束日期_Javascript_Jquery_Twitter Bootstrap_Datetime_Datepicker - Fatal编程技术网

Javascript 如何在引导日期选择器中设置动态最大结束日期

Javascript 如何在引导日期选择器中设置动态最大结束日期,javascript,jquery,twitter-bootstrap,datetime,datepicker,Javascript,Jquery,Twitter Bootstrap,Datetime,Datepicker,我在我的网站上使用以下日期选择器选择开始和结束日期: 这些规则是: 开始日期可以介于今天和+30天之间,不能超过 结束日期不能超过所选开始日期后1年 因此,当表单加载时,我将endDate选项设置为“+1y-1d”,这非常有效。但是,如果客户选择的开始日期为+30天,例如,我需要第二个字段上的endDate选项再次扩展到“当前开始日期+1y-1d” 我已经开始编写代码,但确实不确定如何实现: <script type="text/javascript"> $(funct

我在我的网站上使用以下日期选择器选择开始和结束日期:

这些规则是:

  • 开始日期可以介于今天和+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>

您不必使用json来设置日期选择器选项。您可以直接设置它们。一旦有了要用作javascript日期的新的最大日期,您可以直接设置该选项:

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

请对您编写的代码进行解释。谢谢您的帮助。我试过你的代码(虽然在startdate上被替换为),但它不起作用。请参阅我在编辑原始问题时尝试的确切代码。警报与预期一致。但enddate字段保持在页面加载时设置的11月25日(+1y-1d)。无论我尝试什么开始日期。在我最后一次评论之后有什么想法吗?我肯定想把它修好?我现在唯一的想法是,不要像现在这样初始化它,而是使用
$(“.enddate”).datepicker(“option”,“enddate”,newendatemax)行来初始化它。可能会像使用
+y-d
“sticks”一样初始化它,并取代任何其他代码。这是可能的。
    $("#startdate").change(function() {
        var newendatemaximum = new Date (  $("#startdate").val() ) ;
        newendatemaximum.setYear(newendatemaximum.getFullYear() + 1);
        $(".enddate").datepicker("option", "endDate", newendatemaximum);
    });