将Kendo Datepicker保持在最小/最大范围内

时间:2014-06-27 15:59:06

标签: jquery asp.net-mvc kendo-ui kendo-asp.net-mvc

当用户键入以键入范围之外的日期时,我们会尝试确保将日期更改为最接近的最小值/最大值。即使脚本正在更改值()

,日期选择器中显示的文本也不会更改
@(Html.Kendo()
  .DatePickerFor(x => x.DOB)
  .Max(new DateTime(DateTime.Now.AddYears(-18).Year, DateTime.Now.AddYears(-18).Month, DateTime.Now.AddYears(-18).Day))
  .Min(new DateTime(DateTime.Now.AddYears(-70).Year, DateTime.Now.AddYears(-70).Month, DateTime.Now.AddYears(-70).Day))
  .Events(e=>e.Change("onDOBChange"))
  .HtmlAttributes(new { required = "required", ng_model = "model.DOB" }))

<p ng-show="validateState.submitted && frmMain.DOB.$invalid" class="help-block">Please select</p>
  <script>
    function onDOBChange(e) {
      var dt = $("#DOB").data("kendoDatePicker");
      if (dt.value() < dt.min()) {
        dt.value(dt.min());
      } else if (dt.value() > dt.max()) {
        dt.value(dt.max());
      }
    }
  </script> 

1 个答案:

答案 0 :(得分:1)

我有一个解决方案,在val()中检查null,然后转到该元素以获取它:

http://trykendoui.telerik.com/@ggkrustev/AtUl