Comment valider une date est dans le format AAAA-MM-JJ en utilisant le validateur kendo?
j'ai un capteur de date kendo qui est construit comme suit:
$("#date").kendoDatePicker({
format: "yyyy-MM-dd",
footer: " ",
parseFormats: ["MM/dd/yyyy", "dd/MM/yyyy"]
});
j'aimerais utiliser le validateur kendo pour valider que la date contient une date valide dans le format AAAA-MM-JJ. J'ai essayé ceci:
<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."/>
bien que le validateur valide correctement la condition" requis", il ne semble pas valider que la date soit dans le bon format ou soit une date valide. Par exemple, "abc" passe comme une date valide que ne 2013-18-85. Comment puis-je utiliser le validateur pour assurer une date valide dans le format correct?
2 réponses
Si vous voulez validate
un date
vous devez définir une règle (pas de règle).
Essayer de définir:
$("#date").kendoValidator({
rules: {
date: function (input) {
var d = kendo.parseDate(input.val(), "yyyy-MM-dd");
return d instanceof Date;
}
}
});
NOTE: rappelez-vous que KendoUI utilise d'abord l'option parseFormats
pour analyser la date, puis la convertit en l'option format
et enfin exécute les validations. C'est pourquoi j'utilise dans la validation yyyy-MM-dd
et non ["MM/dd/yyyy", "dd/MM/yyyy"]
.
la réponse est:
<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>
voici plus d'informations: http://docs.telerik.com/kendo-ui/aspnet-mvc/validation
Cheers