La respuesta simple es no usar un formato de fecha personalizado. Simplemente siempre haga .Format ("MM/dd/aaaa") explícitamente y no use "dd/MM/aaaa" ("aaaa-MM-dd" o "MMM d, aaaa" podría estar bien). Y configure su servidor web para usar la configuración regional de EE. UU. En el panel de control o en Web.config.
Ahora, para una explicación del problema y cómo hacer realidad el trabajo dd/mm/aaaa:.
validación de fechas utiliza el kendo kendo kendo.culture formato predeterminado de fecha de la cultura() calendar.patterns.d (y .t por tiempo). Si configura esto directamente o aplica una cultura diferente, eso establece el formato de fecha que se validará. Utiliza kendo.parseDate, por lo que algo como "MMM d, yyyy" estará bien, pero algo como "dd/MM/yyyy" fallará la validación si d> 12 y se usa la cultura estadounidense predeterminada (ver demo de Kendo Globalization para saber cómo cambiar culturas).
La razón por la que esto ocurre es porque DatePicker.Format (...) está ligeramente roto. Es un error en kendo.aspnetmvc.js que proporciona una función de validación de fecha alternativa que ignora el formato DatePicker y simplemente ejecuta parseDate usando el formato de fecha de cultivo actual.Este es el javascript fijo:
date: function(input) {
var dp = input.data("kendoDatePicker") || input.data("kendoDateTimePicker");
if (dp != undefined) {
return input.val() === "" || kendo.parseDate(input.val(), dp.options.format) !== null;
}
return input.val() === "" || kendo.parseDate(input.val()) !== null;
},
Además, hay un pequeño error en la función de validación de la fecha en kendo.validator.js/kendo.web.js que hace la validación fecha en las redes de Internet Explorer siempre fracasan.
Además, asegúrese de que la globalización de su servidor web esté configurada en EE. UU. Para que coincida con la cultura kendo (en Web.config o en el Panel de control regional de Windows). Firefox publica MM/dd/aaaa y el servidor web debe coincidir. Además, el formato de fecha regional del servidor web se aplica a todos los navegadores de cliente si no especifica DatePicker.Format explícitamente. Entonces, si su servidor web tiene formatos de fecha canadiense/británica establecidos en el panel de control para Windows, la rejilla de Kendo cambiará a dd/MM/aaaa, luego se producirá un error en la validación y nuevamente cuando Firefox publique en el servidor web (cultura predeterminada de kendo en mensajes de Firefox MM/dd/aaaa así que si su servidor web espera dd/MM/aaaa, el enlace de fecha del mvc falla).
Nota: Si prefiere utilizar el validador de fecha que no es mvc: elimine el atributo data-val-date. Agregar: data-type = \ "date \" data-format = \ "dd/MM/aaaa h: mm: ss tt \". Creo que esto no es posible usando el helper html. Tienes que especificar el html y javascript directamente.
Nota: los DatePickers que no están en la cuadrícula parecen no tener validez debido a la falta del atributo "data-val-date".
También: "Recuerda que KendoUI primero usa la opción parseFormats para analizar la fecha, luego la convierte a la opción de formato y finalmente ejecuta validaciones. Es por eso que uso en la validación aaaa-MM-dd y no [" MM/dd/yyyy "," dd/MM/yyyy "]". - How to validate a date is in the format yyyy-MM-dd using kendo validator?
Línea globalización de Web.config:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
¿Alguna vez reportó esto o lo publicó en los foros de kendo? –