Estoy tratando de usar el complemento de validación en un div como se muestra en la respuesta a esta pregunta :
<script type="text/javascript"> $("#pseudoForm").validate({ onfocusout:true, rules:{ first_name:"required", last_name:"required" } }); </script> <!-- whatever --> <div id="pseudoForm"> <input type="text" name="first_name"/> <input type="text" name="last_name"/> </div>Tengo todo dentro de un formulario.
Recibo un montón de errores diferentes en diferentes navegadores.
¡Cualquier ayuda apreciada!
Esta no es la respuesta que desea escuchar, pero la otra respuesta es incorrecta (puede haber sido correcta cuando se publicó , pero ha habido varios cambios importantes en el complemento de validación de jQuery desde entonces).
El complemento de validación está (actualmente) diseñado para funcionar en un <form> y solo en un <form> . También puede notar que toda la documentación del complemento hace referencia a un formulario, no a ningún otro contenedor genérico.
El complemento en sí realiza un seguimiento de validator.currentForm internamente, lo que se refiere a this del selector pasado, obteniendo .elements , etc. de eso... realmente no va a funcionar de otra manera, no de la forma en que está escrita la versión actual.
La solución general/enfoque alternativo aquí: llame a .validate() en el elemento <form> (más bien el contenedor jQuery) directamente, no en ningún otro contenedor. Si necesita dividir su <form> use elementos <fieldset> , posiblemente usando la opción ignore: ':hidden' en .validate() si no desea validar campos de entrada que no son visibles para el usuario.
Te falta un paréntesis de cierre. Prueba esto en su lugar:
$("#pseudoForm").validate({ onfocusout:true, rules:{ first_name:"required", last_name:"required" } });Puede obtener el mismo error si selecciona el formulario por clase
$(".form_class").validate(...
en lugar de por ID $("#form_id").validate(...
o nombre de etiqueta $("form").validate(...