jueves, 29 de noviembre de 2012

jquery validation: cambiar mensajes de error que vienen por default

Como cambiar los mensajes de error del plugin Jquery Validator

Me encontré con el problema de querer personalizar los mensajes que tiene el plugin validator de jquery para validar formularios. La razón principal es que necesito cambiar el lenguaje a español porque por default los mensajes de error vienen en inglés.

El código lo pongo aquí abajo. Lo que se tiene que hacer es definir los mensajes de error extendiendo el plugin de jquery para personalizar los mensajes.

Este código debe ir antes de la primer llamada al método validate del formulario que estés validando.

Aquí pongo todos los mensajes que se pueden personalizar pero en mi caso sólo quiero traducir el mensaje de EqualTo para que diga "Ingresa el mismo valor."


$(document).ready(function() {
    $.extend(jQuery.validator.messages, {
        required: "This field is required.",
        remote: "Please fix this field.",
        email: "Please enter a valid email address.",
        url: "Please enter a valid URL.",
        date: "Please enter a valid date.",
        dateISO: "Please enter a valid date (ISO).",
        number: "Please enter a valid number.",
        digits: "Please enter only digits.",
        creditcard: "Please enter a valid credit card number.",
        equalTo: "Ingresa el mismo valor.",
        accept: "Please enter a value with a valid extension.",
        maxlength: $.validator.format("Please enter no more than {0} characters."),
        minlength: $.validator.format("Please enter at least {0} characters."),
        rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
        range: $.validator.format("Please enter a value between {0} and {1}."),
        max: $.validator.format("Please enter a value less than or equal to {0}."),
        min: $.validator.format("Please enter a value greater than or equal to {0}.")
    });
});

Después de esto ya puedes hacer los llamados al método validate del formulario

//validacion de formularios
$("#miform").validate({
rules: {
txtmailpersona: "required",
txtcmailpersona: {
 equalTo: "#txtmailpersona"
}
 },        
 messages: {
 txtnombrepersona: "*",
 txtapellidopaterno: "*",
 txtmailpersona: {
  required: "*",
  email: "El Email debe tener la forma nombre@dominio.com"
 },  
 txtcmailpersona: {
required: "*",
email: "El Email debe tener la forma nombre@dominio.com..."
 }
}
});

Les dejo aquí la referencia de donde lo encontré:

http://stackoverflow.com/questions/9371338/jquery-validation-plugin-response-messages