如何验证日期的格式为yyyy-MM-dd,使用kendo验证器?

Jam*_*mes 4 javascript validation datepicker telerik kendo-ui

我有一个kendo日期选择器,构造如下:

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

我想使用kendo验证器来验证日期是否包含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."/>
Run Code Online (Sandbox Code Playgroud)

虽然验证器确实正确验证了"必需"条件,但似乎并未验证日期格式是否正确或是否为有效日期.例如,"abc"作为有效日期传递,如2013-18-85.如何使用验证器确保格式正确的有效日期?

Ona*_*Bai 13

如果您想要validatea date,则需要定义规则(无内置规则).

尝试定义:

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

注意:请记住,KendoUI首先使用parseFormats选项来解析日期,然后将其转换为format选项,最后运行验证.这就是我在验证中使用的原因yyyy-MM-dd而不是["MM/dd/yyyy", "dd/MM/yyyy"].