0

我正在使用小时间剑道,并在验证日期选择器时发现了问题。

@using (Ajax.BeginForm("FindByFilter", "Find", new { filter = Model.Filter }, new AjaxOptions { UpdateTargetId = "content", HttpMethod = "GET", InsertionMode = InsertionMode.Replace }))
{
  <div class="demo-section fr" style="width: 340px; margin-top: -2px;">
      <label for="start">Start:</label>
      @(Html.Kendo().DatePickerFor(model => model.Filter.Start)
          .Name("start")
          .Culture("pt-BR")
          .HtmlAttributes(new { style = "width: 140px" })
          .Min(DateTime.Today)
          .Events(e => e.Change("startChange"))
      )

      <label for="end" style="margin-left: 0.5em">End:</label>
      @(Html.Kendo().DatePickerFor(model => model.Filter.End)
          .Name("end")
          .Culture("pt-BR")
          .HtmlAttributes(new { style = "width: 140px" })
          .Min(Model.Filter.Start)
          .Events(e => e.Change("endChange"))
      )
  </div>
  <div>
      <input type="submit" class="button small secondary lupa fr" />
  </div>
}

当我单击提交时,日期选择器不接受 20/04/2013 格式,仅格式为 2013-04-20。我将文化设置为 pt-BR,但仍在进行验证。任何人都可以帮忙吗?

4

1 回答 1

1

我似乎记得有完全相同的问题。像你一样,我们通过使用 kendo.culture('en-GB') 改变了文化,但这并没有解决问题。最后我们必须添加我们自己的 jQuery 验证器方法:

jQuery.validator.addMethod(
    'date',
    function (value, element) {
        if (this.optional(element)) {
            return true;
        };
        var result = false;
        try {
            $.datepicker.parseDate('dd/mm/yy', value);
            result = true;
        } catch (err) {
            result = false;
        }
        return result;
    },
    ''
);
于 2013-04-17T16:15:50.860 回答