【问题标题】:Can't set maxDate from an enddate to input startdate + 30 days无法将 maxDate 从结束日期设置为输入开始日期 + 30 天
【发布时间】:2018-09-12 17:00:30
【问题描述】:

我有 2 个输入字段要求输入开始日期和结束日期。无论何时填写开始日期,都应更改结束日期的可能性,因此您只能在填写的开始日期后 30 天之前的日期之间进行选择。除了我尝试执行上面解释的第二个块的第二行之外,下面的所有内容都有效。有任何想法吗? (使用 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>

查询:

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

【问题讨论】:

  • 你可以使用弹出式日历 ajax 并将其设置为 from 和 to 文本框,然后在页面加载 system.Datetime.()

标签: jquery asp.net datepicker maxdate


【解决方案1】:

您需要将它放在 $("#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 );
        }
    });

【讨论】:

  • 除了你在设置 var startDate 时使用了双“#”。这确实有效,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-05-04
  • 2021-11-11
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多