无法将maxDate从enddate设置为输入startdate + 30天

时间:2018-04-03 11:24:28

标签: jquery asp.net datepicker maxdate

我有2个输入字段,要求提供开始日期和结束日期。每当填写开始日期时,应更改结束日期的可能性,因此您只能在填写开始日期之后的30天之间选择日期。下面的所有东西都与第二个区块的第二行分开,我尝试按照上面的说明进行操作。有任何想法吗? (使用asp.net和Jquery)

FRONTEND:

<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");
    }
});

1 个答案:

答案 0 :(得分:1)

你需要把它放在$(“#ctl00_ContentPlaceHolder1_dateStart”)datepicker的“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 );
        }
    });