2010-10-08 18 views
14

Cómo validar un campo de dirección de correo electrónico con tres reglas con tres mensajes personalizados en el contenedor div. es decir.jquery validar con varias reglas

rules: { 
    email: { 
     validationRule: true, 
     email: true, 
     remote: '/ajax/emailDuplicationCheck.php' 
     } 
    } 

si primero falso mensaje debe ser "regla de validación falló"

si segunda falsa (fallo) "introduzca la dirección de correo electrónico"

si la tercera (remoto) falló. el mensaje debe ser "La cuenta ya existe en la base de datos".

Puedo agregar un mensaje para todas las reglas, pero quiero personalizar el mensaje con respecto a las reglas.

Respuesta

11

Prueba esto:

$("#myForm").validate({ // Replace #myForm with the ID of your form 
    rules: { 
     email: { 
      required: true, 
      email: true, 
      remote: { 
       url: "/ajax/emailDuplicationCheck.php", 
       type: "post", 
       data: { email: function() { 
        return $("#email").val(); // Add #email ID to your email field 
       } 
      } 
     } 
    }, 
    messages: { 
     email: { 
      required: 'Email address is required', 
      email: 'Please enter a valid email address', 
      remote: 'This email address has already been used' 
     } 
    }, 
    errorPlacement: function(error) { 
     $("#response").html(error); 
    } 
}); 

Espero que esto ayude!

+0

Nº no está funcionando. solo muestra el mensaje en el correo electrónico: "ingresar la dirección de correo electrónico". Como he mencionado. Quiero mostrar msg en contenedor div? – Developer

+0

La sintaxis es correcta y así se supone que debe hacerse, por lo que el problema debe ser en otro lugar. 'validationRule' se ve como un método de validación personalizado. ¿Qué se supone que está haciendo exactamente? ¿Puedes por favor editar tu pregunta y agregar el código para ese método también? –

+0

Método de validaciónRule sin hacer nada. es solo regresar verdadero. bien si elimino esa línea. incluso que no está trabajando con dos reglas. y cómo puedo mostrarlo en DivContainer of id #response. Quiero mostrar el mensaje en el contenedor div – Developer

1

Puede usar reglas de validación personalizadas junto con sus propios mensajes personalizados para cada regla.

Por simplicidad, aquí está un ejemplo de cómo validar una entrada de 'nombre de usuario' con tres métodos para la validación personalizados (cada uno con su mensaje propio error):

// Add three custom methods first: 

$.validator.addMethod("nameCustom", function(value, element) { 
    return this.optional(element) || /^[a-zA-Z ]+/.test(value); 
}, 'Please use english letters only.'); 

$.validator.addMethod("noSpaceStart", function(value, element) { 
    return value.indexOf(" ") != 0; 
}, "Name cannot start with a space"); 

$.validator.addMethod("noSpaceEnd", function(value, element) { 
    return value.lastIndexOf(" ") != value.length - 1; 
}, "Name cannot end with a space"); 

$('#form_to_validate').validate({ 
    rules: { 
     username: { 
      // Add the custom validation methods to the username input 
      noSpaceStart: true, 
      noSpaceEnd: true, 
      nameCustom: true, 
      // required and maxlength are built-in methods in the plugin and are ready to be used 
      required: true, 
      maxlength: 50 
     } 
    } 
}); 
Cuestiones relacionadas