2011-02-08 12 views
30

Estoy tratando de utilizar el validate plugin en un div como se muestra en la respuesta a this question:jQuery plugin en validar DIV

<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 una forma.

Estoy recibiendo un montón de errores diferentes en diferentes navegadores.

  • Firefox: validador en indefinido
  • IE8: 'ajustes' es nulo o no un objeto
  • Chrome: No se puede leer 'configuración' de propiedad de indefinido

¡Cualquier ayuda apreciada!

Respuesta

51

Esta no es la respuesta que desea escuchar, pero la otra respuesta no es correcta (puede haber tenido razón cuando fue publicada, pero ha habido varios de los principales plug-in de validación de jQuery cambios desde entonces).

The validation plugin es (actualmente) diseñado para trabajar en un <form> y solamente en un <form>. También puede observar que all of the plugin documentation hace referencia a un formulario, no a ningún otro contenedor genérico.

El propio plugin comprueba validator.currentForm internamente, que se refiere a la this del pasado en el selector, consiguiendo .elements, etc fuera de eso ... en realidad no va a funcionar de otra manera, no la forma en la versión actual del escrito .

El/enfoque global solución alternativa aquí: llamada .validate() en el elemento de <form> (la envoltura jQuery para ello más bien) directamente, no cualquier otro recipiente. Si necesita dividir su <form> use <fieldset> elementos, posiblemente utilizando la opción ignore: ':hidden' en .validate() si no desea validar los campos de entrada que no son visibles para el usuario.

+1

esta es la respuesta que necesitaba, gracias. Solo necesitaba una última palabra sobre el tema. ¿Sería capaz de proporcionar un enlace a una pregunta que muestra esa solución alternativa o copiar pegar una muestra aquí, o tal vez esa debería ser otra pregunta? :) – JohnIdol

+0

¿Qué sucede si no envío el formulario y, en su lugar, tengo un botón simple (que no publica el formulario) y lo valida de manera explícita con .validate() al hacer clic en ese botón? ¿Es eso posible? – IsmailS

+0

@Ismail - En ese caso, todavía usa '.validate()' inicialmente para manipular la validación, luego use '.valid()' que verifica si el formulario es válido de acuerdo con las reglas que configuró. Puedes leer más sobre esta función aquí: http://docs.jquery.com/Plugins/Validation/valid –

1

Falta un corchete de cierre. Tal vez puedas probar:

$("#pseudoForm").validate({ 
    onfocusout:true, 
    rules:{ 
     first_name:"required", 
     last_name:"required" 
    } 
}); 
+0

siento que faltaba el corchete de la pregunta, pero está en mi código, corregido ahora. gracias – JohnIdol

1

Usted puede obtener el mismo error si selecciona la forma por clase

$(".form_class").validate(...

en lugar de por ID $("#form_id").validate(...

o el nombre de la etiqueta $("form").validate(...

-3

En las opciones de validate() , poner onsubmit: !$.browser.msie

0

Sé que es tema muy antiguo, pero podría ayudar a alguien que venga a esta página.

Por favor marque [1]: http://encosia.com/asp-net-webforms-validation-groups-with-jquery-validation/ sitio web muy útil y demostrar qué respuesta real merece esta pregunta

[Grupo de Validación] [1]

+1

Tenga en cuenta que [las respuestas de solo enlace] (http://meta.stackoverflow.com/tags/link-only-answers/info) no se recomiendan, Las respuestas SO deberían ser el punto final de una búsqueda de una solución (frente a otra escala más de referencias, que tienden a quedarse obsoletas en el tiempo). Considere agregar una sinopsis independiente aquí, manteniendo el enlace como referencia. – kleopatra

+0

Ok me ocuparé la próxima vez – alhashmiya

1

abierto jquery.validate.js o jquery.validate.min.js y Buscar (Ctrl + F) " etiqueta "y replaceAll con su su etiqueta requerido:

Ejemplo: div

luego realice la validación.

+0

Parece extraño que tenga que modificar la biblioteca jquery ... – Robert