1

我有一个Telerik MVC DatePicker

<%: Html.Telerik().DatePickerFor(model => model.Date)
                         .TodayButton()
                         .Max(DateTime.Now)
                         .HtmlAttributes(new { @onkeypress = "return allowNumbersWithDot(event);", @onpaste = "return false;" })
                        %>  

通过设置Max属性,我只获取当前日期之前的日期,并且所有未来的日期都被隐藏。我是什么,启用当前日期之前的所有日期并禁用所有未来日期。即用户可以看到所有日期,但只能选择到当前日期。

4

2 回答 2

2

Max 属性阻止选择和显示设置值之后的所有日期。要解决此问题,请尝试使用客户端事件处理程序格式化 DatePicker,例如:

@Html.Telerik().DatePickerFor(model => model.Date).ClientEvents(e => e.OnChange("onChange"))

然后使用以下内容添加您的验证:

function onChange(e) {
    var endDate = new Date(); // Your specific date
    if (e.value > endDate) {
        if (e.previousValue === null) {
            $(this).data("tDatePicker").value(null);
        }
        e.preventDefault();
    }
}

有关此技术的更多信息,请访问 Telerik 支持论坛: http ://www.telerik.com/community/forums/aspnet-mvc/datepicker/datepicker---prevent-future-date-selection.aspx

于 2013-05-06T20:43:49.490 回答
2

最小日期:使用它来设置用户可以选择的最小日期。

<%= Html.Telerik().DatePicker()
                  .Name("DatePicker")
                  .MinDate(new DateTime(1900,1,1)))
%>

最大日期:使用它来设置用户可以选择的最大日期。

<%= Html.Telerik().DatePicker()
                  .Name("DatePicker")
                  .MaxDate(new DateTime(2100,1,1)))
%>

祝你好运!

于 2014-04-29T11:01:56.317 回答