Al validar fechas con jQuery Validate nos encontramos con el problema de que dicha validación se hace en formato: MM/DD/YYYY, esto es correcto, pero no tanto para formato de fechas de México al menos que es más común para nosotros hacerlo de manera que dicho formato sea: DD/MM/YYYY.
Para poder solucionar este problema haremos algunas modificaciones en las librerías:
jquery.validate.min.js
Esta es la versión optimizada de la función, que es prácticamente la misma, considerando únicamente que las variables value y element son sustituídas por: a y b
Código Fuente
Puedes descargar el código fuente utilizado para probar dichas modificaciones desde este LINK, considera que se implementó en Visual Studio 2013 en un proyecto ASP.NET MVC y en BundleConfig.cs puedes habilitar la optimización de scripts y estilos y hacer uso de la versión minimizada de jQuery Validate.
Si tienes dudas o comentarios, háznoslo saber escribiendo tu opinión en la sección de comentarios, gracias por leer...
Para poder solucionar este problema haremos algunas modificaciones en las librerías:
- jquery.validate.js
- jquery.validate.min.js
jquery.validate.js
Se deja comentado el cómo se hace la validación original y se adiciona el código personalizado que permite validar el formato de fecha del tipo: DD/MM/YYYY
1 2 3 4 5 6 7 8 9 10 11 | // http://jqueryvalidation.org/date-method/ // Nivisix Soluciones: personalización para formato de fechas DD/MM/YYYY date: function( value, element ) { //return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() ); var comp = value.split('/'); var d = parseInt(comp[0], 10); var m = parseInt(comp[1], 10); var y = parseInt(comp[2], 10); var date = new Date(y, m - 1, d); return this.optional(element) || (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d); } |
jquery.validate.min.js
Esta es la versión optimizada de la función, que es prácticamente la misma, considerando únicamente que las variables value y element son sustituídas por: a y b
1 | date: function (a, b) { var comp = a.split('/'); var d = parseInt(comp[0], 10); var m = parseInt(comp[1], 10); var y = parseInt(comp[2], 10); var date = new Date(y, m - 1, d); return this.optional(b) || (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d); } |
Código Fuente
Puedes descargar el código fuente utilizado para probar dichas modificaciones desde este LINK, considera que se implementó en Visual Studio 2013 en un proyecto ASP.NET MVC y en BundleConfig.cs puedes habilitar la optimización de scripts y estilos y hacer uso de la versión minimizada de jQuery Validate.
Si tienes dudas o comentarios, háznoslo saber escribiendo tu opinión en la sección de comentarios, gracias por leer...
Comentarios
Publicar un comentario