无法将 maxDate 从结束日期设置为输入开始日期 + 30 天

Can't set maxDate from an enddate to input startdate + 30 days

我有 2 个输入字段要求开始日期和结束日期。无论何时填写开始日期,结束日期的可能性都应更改,因此您只能在填写的开始日期后 30 天之前的日期之间进行选择。除了第二个块的第 2 行,下面的所有内容都可以正常工作,在那里我尝试执行上面解释的操作。有任何想法吗? (使用 asp.net 和 Jquery)

前端:

<p><asp:TextBox ID="dateStart" runat="server" CssClass="texter" placeholder="<%$ Resources:GlobalResource, startperiode%>" ></asp:TextBox></p>
<p><asp:TextBox ID="dateEnd" runat="server" CssClass="texter" placeholder="<%$ Resources:GlobalResource, eindperiode%>" ></asp:TextBox></p>

JQUERY:

$("#ctl00_ContentPlaceHolder1_dateStart").datepicker({
        dateFormat: "yy-mm-dd",
        minDate: +0,
        onSelect: function () {
            $('label[for=dateStart]').fadeOut("fast");
        }
    });

$("#ctl00_ContentPlaceHolder1_dateStart").change(function () {
    $(this).datepicker('setDate', $(this).datepicker('getDate'));
    $("#ctl00_ContentPlaceHolder1_dateEnd").datepicker('maxDate', $("#ctl00_ContentPlaceHolder1_dateStart").datepicker('getDate') + 30);
}).datepicker({
    dateFormat: "yy-mm-dd",
    onSelect: function () {
        $('label[for=dateStart]').fadeOut("fast");
    }

    });

$("#ctl00_ContentPlaceHolder1_dateEnd").datepicker({
    dateFormat: "yy-mm-dd",
    minDate: +0,
    onSelect: function () {
        $('label[for=dateStart]').fadeOut("fast");
    }
});

$("#ctl00_ContentPlaceHolder1_dateEnd").change(function () {
    $(this).datepicker('setDate', $(this).datepicker('getDate'));
}).datepicker({
    dateFormat: "yy-mm-dd",
    onSelect: function () {
        $('label[for=dateEnd]').fadeOut("fast");
    }
});

您需要将它放在 $("#ctl00_ContentPlaceHolder1_dateStart") 日期选择器的 "onSelect" 函数中。

$("#ctl00_ContentPlaceHolder1_dateStart").datepicker({
        dateFormat: "yy-mm-dd",
        minDate: +0,
        onSelect: function () {
            $('label[for=dateStart]').fadeOut("fast");        

            var startDate = $("#ctl00_ContentPlaceHolder1_dateStart").datepicker('getDate');
            startDate.setDate(startDate.getDate() + 30);
            $("#ctl00_ContentPlaceHolder1_dateEnd").datepicker('option', 'maxDate', startDate );
        }
    });