Ir al contenido principal

Validación de Fechas con jQuery Validator

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.js
  • jquery.validate.min.js
Veamos el siguiente video para la implementación de dicha solución:

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

Entradas más populares de este blog

Publicación de WCF en Net.TCP

Una de las grandes características de WCF es la forma en como éstos pueden ser expuestos a nuestros clientes, por ejemplo los siguientes protocolos, de manera muy recurrente: Http TCP Net Pipe ¿Sabes en que casos usar cada uno? Http cuando el servicio y el cliente se encuentran en redes diferentes TCP cuando el servicio y el cliente se encuentran en la misma red, pero en equipos diferentes Net Pipe cuando el servicio y el cliente se encuentran alojados en el mismo equipo ¿Por qué razón? Por cuestiones de redimiento y seguridad de la información Si una petición http toma un tiempo de 200 ms, por poner un ejemplo Una petición tcp tomará aproximadamente el 20% menos que la petición http (40 ms aproximadamente) Y una petición Net Pipe , tomará aproximadamente el 80% del tiempo que toma el hacer una petición tcp (32 ms aproximadamente) Para mayor entendimiento, chequen este post que alguna vez consultamos para entender un poco más acerca de éstos conceptos: https://j...

.NET ClickOnce y Privilegios de Administrador

Estaba revisando que no publicábamos nada desde Julio de 2017 y pues ya pasó algo de tiempo, podemos decir que afortunadamente hemos tenido un poco de trabajo que no nos ha permitido retomar este asunto de los posts. Una Pequeña Introducción Uno de nuestros proyectos más importantes dentro de Nivisix es el Sistema de Punto de Venta, puesto que de primera instancia lo vendemos a nuestros clientes y posteriormente nos solicitan personalizaciones del mismo de acuerdo a sus necesidades. Y las liberaciones a veces se tornan un tanto complicadas por que en un inicio eran en sitio y posteriormente usando herramientas como Team Viewer y si en su momento compraban el servicio de implementación de VPN pues que mejor. Lo anterior está muy bien, ¿pero porqué no hacer uso de lo que Microsoft desde hace algunos años nos ofrece y que puede solucionar este problema de actualización? Hablo específicamente del uso de ClickOnce como herramienta de liberación y actualización de aplicaciones...