2012-05-23 10 views
11

Estoy usando el complemento de validación jQuery para validar mi formulario. Funciona (coloca los mensajes de error, junto a la entrada no válida, lo que arruina mi diseño), pero me gustaría especificar el contenedor de errores para cada campo de entrada. Encontré el errorLabelContainer, pero esto pone todos los errores en un contenedor.Validación del formulario jQuery: Definir contenedor para errores

Digamos que tengo 2 entradas, una con id name y una con firstname. Y supongamos también que tengo 2 intervalos de error, con los identificadores errorName y errorFirstname. ¿Cómo le digo a jQuery que escriba el error de validación para name en el lapso con el id errorName?

Ésta es mi jQuery actual:

$("#form").validate({ 
    errorLabelContainer: "#errors", 
     rules: { 
      name: { 
       required: true 
      }, 
      firstname: { 
       required: true 
      } 
     }, 
     messages: { 
      name: { 
       required: "Enter name" 
      }, 
      firstname: { 
       required: "Enter firstname" 
      } 
     } 
    }) 

Respuesta

11

creo que la opción errorPlacement se adapte a sus necesidades: la colocación

Personalizar etiquetas de error creados. Primer argumento: la etiqueta de error creada como un objeto jQuery. Segundo argumento: el elemento no válido como un objeto jQuery.

Puede determinar el elemento que desea colocar el error en basado en el elemento no válido:

$("#form").validate({ 
    rules: { 
     name: { 
      required: true 
     }, 
     firstname: { 
      required: true 
     } 
    }, 
    messages: { 
     name: { 
      required: "Enter name" 
     }, 
     firstname: { 
      required: "Enter firstname" 
     } 
    }, 
    errorPlacement: function ($error, $element) { 
     var name = $element.attr("name"); 

     $("#error" + name).append($error); 
    } 
}); 

Ejemplo:http://jsfiddle.net/R3aEQ/

+0

eso es exactamente lo que quería, gracias a usted mucho :) – Ahatius

+0

¿Puedes hacer esto para que sea diferente en las diferentes etapas de un asistente? ¿Cómo cambiarías dinámicamente errorPlacement? – Tofuwarrior

+0

Podría hacer que 'errorPlacement' llame a una función que pertenece a un paso del flujo de trabajo. Realmente depende de cómo esté estructurado su flujo de trabajo –

Cuestiones relacionadas