2011-07-21 32 views
29

Soy nuevo en JQuery y estoy usando el JQuery validation plugin.jQuery Validation plugin - Mensaje personalizado

Me gustaría preguntar, cómo anular los mensajes predeterminados para mostrar también texto en la etiqueta asociada con el elemento del formulario.

que obtendría mensaje algo como esto: se requiere

campo de contraseña. en lugar del valor predeterminado Este campo es obligatorio.

El campo Código postal debe contener al menos 3 caracteres. en lugar de por defecto Por favor, introduzca al menos 3 caracteres.

Necesito anular el comportamiento predeterminado de este complemento, porque no deseo especificar un mensaje personalizado para cada elemento para cada tipo de validación.

¿Es posible?

Respuesta

45
$("#signupform") 
    .validate({ 
     rules: { 
      password: "required", 
      postcode: { 
       required: true, 
       minlength: 3 
      } 
     }, 
     messages: { 
      password: "Field Password is required", 
      postcode: { 
       required: "Field PostCode is required", 
       minlength: "Field PostCode must contain at least 3 characters" 
      } 
    }); 
+0

Gracias por su respuesta, pero como he dicho: Necesito anular el comportamiento predeterminado de este complemento, porque no deseo especificar un mensaje personalizado para cada elemento para cada tipo de validación. Tu respuesta es exactamente lo que no quiero. – Detonator

+0

@Martin: Perdón, me perdí un poco. Bueno, la única forma en que puedo ver que sobrescribas los mensajes predeterminados es editando el complemento, que no recomendaría. Vea si ['invalidHandler'] (http://docs.jquery.com/Plugins/Validation/validate#toptions) funcionará para usted, de lo contrario, las opciones parecen ser limitadas aquí. – Shef

+3

también es posible configurar mensajes especiales para entradas especiales de esta manera: 'data-msg-required =" Por favor ingrese su dirección de correo electrónico '' o 'data-msg-email =" Por favor ingrese una dirección válida de correo electrónico '' en marcado HTML . –

4

Necesitaba hacer lo mismo, y terminé creando un método personalizado para que su mensaje se pudiera compartir en varios formularios.

que consideran que esta respuesta en una pregunta similar desbordamiento de pila: How can we specify rules for jquery validation plugin by class?

$.validator.addMethod(
    "newEmail", //name of a virtual validator 
    $.validator.methods.email, //use the actual email validator 
    "Custom error message" 
); 
16

Esto es lo que encontré cuando estaba buscando lo mismo hace un par de días. Lamentablemente, no recuerdo dónde lo encontré, así que no puedo dar crédito a la persona que escribió la respuesta.

jQuery.extend(jQuery.validator.messages, { 
    required:"This field is required.", 
    equalTo:"Password fields do not match.", 
    email:"Please enter a valid email.", 
}); 
+0

http: // stackoverflow.com/a/2457053/3416443 - este es el enlace correcto – Muarl

4

Hay una forma más concisa de lograr esto.

Uso "datos msg" o "datos msg- (nombre_regla)" para anular mensaje de error predeterminado para una regla predefinida o una regla personalizada. (Después de jQuery v1.11.0 validación, actualmente v1.16.0)

<input id="pwd" name="pwd" type="password" value="" 
     required 
     data-msg-required="Field Password is required." /> 

<input id="postcode" name="postcode" type="text" value="" 
     required 
     data-msg-required="Field PostCode is required." 
     minlength="3" 
     data-msg-minlength="Field PostCode must contain at least 3 characters." /> 
+1

¡La mejor respuesta hasta el momento si necesita personalizar solo uno o dos mensajes de error! – AlexisWbr

0

añadir esto después de que el plugin:

jQuery.extend(jQuery.validator.messages, { 
    required: "Your new default message", 
    email: "That's not a valid email" 
}); 

se puede poner en un archivo separado si lo desea, pero asegúrese está incluido después del complemento

Cuestiones relacionadas