5

次のように構成された剣道日付ピッカーがあります。

$("#date").kendoDatePicker({
    format: "yyyy-MM-dd",
    footer: " ",
    parseFormats: ["MM/dd/yyyy", "dd/MM/yyyy"]
  });

剣道バリデーターを使用して、日付に yyyy-MM-dd 形式の有効な日付が含まれていることを検証したいと考えています。私はこれを試しました:

<input type="date" id="date" placeholder="yyyy-mm-dd" name="date" required data-required-msg="Please enter a date." data-date-msg="Please enter a valid date."/>

バリデーターは「必要な」条件を正しく検証しますが、日付が正しい形式であること、または有効な日付であることを検証していないようです。たとえば、「abc」は 2013-18-85 と同様に有効な日付として渡されます。バリデーターを使用して、有効な日付が正しい形式であることを確認するにはどうすればよいですか?

4

2 に答える 2

15

validate必要な場合dateは、ルールを定義する必要があります (組み込みのルールはありません)。

定義してみてください:

$("#date").kendoValidator({
    rules: {
        date: function (input) {
            var d = kendo.parseDate(input.val(), "yyyy-MM-dd");
            return d instanceof Date;
        }
    }
});

注: KendoUI は最初parseFormatsにオプションを使用して日付を解析し、次にそれをオプションに変換しformat、最後に検証を実行することに注意してください。yyyy-MM-ddそのため、 ではなくin validation を使用し["MM/dd/yyyy", "dd/MM/yyyy"]ます。

于 2013-01-03T00:20:35.677 に答える
4

答えは次のとおりです。

<script src="@Url.Content("~/Scripts/kendo/2015.2.805/kendo.aspnetmvc.min.js")"></script>
<script type="text/javascript">
    kendo.ui.validator.rules.mvcdate = function (input) {
        //use the custom date format here
        //kendo.parseDate - http://docs.telerik.com/kendo-ui/api/javascript/kendo#methods-parseDate
        return !input.is("[data-val-date]") || input.val() === "" || kendo.parseDate(input.val(), "@(MvcApplication.AppCulture.DateTimeFormat.ShortDatePattern)") !== null;
    };
</script>

詳細はこちら: http://docs.telerik.com/kendo-ui/aspnet-mvc/validation

乾杯

于 2015-08-19T21:38:28.153 に答える