Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Jquery Validate al cargar un campo por Ajax

Estas en el tema de Jquery Validate al cargar un campo por Ajax en el foro de Jquery en Foros del Web. Hola, Estuve buscando pero no encontre nada para poder solucionar esto, el problema es el siguiente, tengo un formulario que tiene los siguientes campos (Html ...
  #1 (permalink)  
Antiguo 18/04/2013, 11:26
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Pregunta Jquery Validate al cargar un campo por Ajax

Hola,

Estuve buscando pero no encontre nada para poder solucionar esto, el problema es el siguiente, tengo un formulario que tiene los siguientes campos (Html normal):

Código HTML:
Ver original
  1. <form id="form_candidato" action="#" method="post">
  2.  
  3. Pais:
  4.  
  5. <select required="required" onchange="traeRegiones(this.value)" name="paisid" class="div_select" id="paisid">
  6.         <option value="0">Elige una opción</option>
  7. //Opciones
  8.             </select>
  9.  
  10. //Aqui se cargarian las regiones en un select
  11. <div id="div_regiones"></div>
  12.  
  13. Nombre:
  14. <input type="text" class="div_input" maxlength="255" required="required" name="formNombre" id="formNombre">
  15.  
  16. Curso:
  17. <input type="text" class="div_input" maxlength="255" required="required" name="formCurso" id="formCurso">
  18.  
  19.  
  20. <input type="submit" value="Enviar">
  21.  
  22. </form>


Cuando una persona selecciona el Pais, se llama mediante un "onchange" a la funcion "traeRegiones" las cuales obviamente trae las regiones segun el pais seleccionado por Ajax.

Si se envia el formulario se valida con "validate"

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.        
  3.         $(document).ready(function()
  4.         {
  5.  
  6.             $("#form_candidato").validate({
  7.                 debug: true,
  8.                 'errorClass': 'msgboxJQ errorJQ',
  9.                 errorElement:'div',
  10.                 'highlight': function (element, errorClass) {
  11.                     $(element).addClass('failed');
  12.                 },
  13.                 'unhighlight': function (element, errorClass) {
  14.                     $(element).removeClass('failed');
  15.                 }
  16.             });
  17.         });
  18.  
  19.  
  20.         function traeRegiones(id)
  21.         {
  22. $('#div_regiones').load("{{ path('traeRegionxPais') }}/"+id);
  23.         }
  24.     </script>


El problema es que si yo pulso enviar al formulario, me despliega el mensaje "Este campo es obligatorio." en los 3 campos originales, pero no en el campo "region".

Una solucion que encontre fue cargar despues del load la validacion (callback) pero obviamente aqui no puedo, ya que requiero que la persona pulse en el pais para poder traer la region, la duda finalmente es... existe alguna manera de poder agregar una validacion por JQuery al campo region?? o de plano simplemente le agrego una validacion con Javascript no mas

Gracias de ante mano
  #2 (permalink)  
Antiguo 19/04/2013, 15:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Jquery Validate al cargar un campo por Ajax

recuerde que cuando actualiza el select dependiente, este se reescribe por completo, perdiendo incluso los eventos y la asignación de jquery validate, debe volverle a aplicar la validación cuando sea recargado vía ajax dicho objeto.

recuerde: los objetos insertados o modificados por AJAX se incluyen al DOM en el futuro, por lo cual no existen al momento de asignar desde el domready
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 23/04/2013, 18:09
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Jquery Validate al cargar un campo por Ajax

utiliza la etiqueta

$("#div_regiones'").load("regiones.php",{"id_pais" :"1"},function(data){
$(this).html("<script type="text/javascript" src="validación.js"><script>"data);
});
  #4 (permalink)  
Antiguo 27/04/2013, 10:38
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Jquery Validate al cargar un campo por Ajax

Hola maycolalvarez,

Lo que mencionas ya lo sabia, de hecho lo puse como nota casi al final, gracias igualmente.


negro1985, estuve probando esto, pero no me funciona aun, creo que hare una validacion mas simple y me ahorrare problemas, gracias.

Saludos
  #5 (permalink)  
Antiguo 03/05/2013, 21:21
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Jquery Validate al cargar un campo por Ajax

En fin...

Viendo otra cosa por error logre sacar esto... al final... no habia que hacer nada del otro mundo, a pesar de que son instancias distintas igualmente entran en la validacion del JQuery lo unico que habia que hacer es:

Para los campos tipo select

Código:
class="required"
Si dejas

Código:
class="required"  required="required"
No funciona (que era como lo tenia )

Y para los input, solamente colocarles

Código:
  required="required"
Y listo... que cosas no...

Etiquetas: ajax, campo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.