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>
}

送信をクリックすると、datepicker は 2013-04-20 の形式でのみ 20/04/2013 の形式を受け入れません。カルチャを 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 に答える