【问题标题】:validation in the format of kendo datepickerkendo datepicker 格式的验证
【发布时间】:2013-04-17 15:12:18
【问题描述】:

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

@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,但仍在进行验证。有人可以帮忙吗?

【问题讨论】:

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


【解决方案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;
    },
    ''
);

【讨论】:

  • 感谢迈尔斯的反馈。我使用了您的解决方案,但问题仍然存在。除了包含脚本之外,我还需要做其他事情吗?
  • 如果没有看到更多代码,很难说出为什么它不适合您。您在哪里添加了验证器方法代码?编辑/保存记录时是否会调用它?尝试在方法中添加 Javascript 警报测试消息,以查看它是否真正被调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 2018-05-11
  • 2015-01-16
  • 1970-01-01
相关资源
最近更新 更多