Foros del Web » Programando para Internet » Jquery »

porque no me funciona la libreria jquery cuando utilizo ajax

Estas en el tema de porque no me funciona la libreria jquery cuando utilizo ajax en el foro de Jquery en Foros del Web. Hola, os comento el problema que tengo haber si me podeis ayudar, trata de un codigo donde llamo llamo a un script php mediante ajax, ...
  #1 (permalink)  
Antiguo 08/05/2012, 14:54
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
porque no me funciona la libreria jquery cuando utilizo ajax

Hola, os comento el problema que tengo haber si me podeis ayudar, trata de un codigo donde llamo llamo a un script php mediante ajax, este script que contiene un formulario dodne tengo dos campos que me los tendria que validar ya que utilizo la libreria jquery y su plugin validation, pero no me funciona, muestro codigo:

este es el script donde cargo las funciones php y la libreria jquery:

Código Javascript:
Ver original
  1. <html>
  2.     <head>
  3. <script type="text/javascript" src="jquery/jquery-1.4.2.js"></script>
  4. <script type="text/javascript" src="jquery/jquery.validate.js"></script>
  5. <script type="text/javascript" src="js/reglas_validacion_publicar.js"></script>
  6.  
  7. <script type='text/javascript'>
  8.    function formulario() {
  9.        var Ajax=obtiene_http_request();
  10.            Ajax.open("post","formulario.php", true);
  11.            Ajax.onreadystatechange = function() {
  12.                 if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  13.                     document.getElementById('contenido').innerHTML=Ajax.responseText;
  14.                  }
  15.            }
  16.         Ajax.send(null);
  17.      }
  18. </script>
  19.     </head>
  20.     <body>
  21.  
  22. <div id='contenido'>
  23.     <input type='button' value='tus datos' onclick='formulario();'>
  24. </div>
  25.     </body>
  26. </html>

aqui el script que llamo con ajax(osea el formulario)

formulario.php

Código PHP:
Ver original
  1. <form id='form' method='post' action='procesarDatos.php'>
  2.     <label>nombre</label><input type='text' name='nombre'><br><br>
  3.     <label>email</label><input type='text' name='email'><br>
  4.     <input type='submit' value='enviar'>
  5. </form>

lo que tendria que hacerme es validarme con ajax los campos del formulario pero no me funciona, si coloco todo el codigo en el mismo script si que me funciona, a que es debido esto, alguna ayuda.

saludos.

Última edición por pithon; 08/05/2012 a las 15:14
  #2 (permalink)  
Antiguo 08/05/2012, 15:26
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 10 meses
Puntos: 63
Pregunta Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

Cuando dices:

Cita:
si coloco todo el codigo en el mismo script si que me funciona.
Quieres decir que llamas los javascripts dentro de formulario.php?
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #3 (permalink)  
Antiguo 08/05/2012, 16:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

Hola Heiroon, me refiero que si coloco todo el codigo dentro de un mismo script osea cargar los js en el mismo codigo que el formulario, entonces si que me los valida los campos, pero de esta forma si llamo al formulario con ajax no me los valida es como si no estubieran los js, alguna idea de que puede ser, saludos
  #4 (permalink)  
Antiguo 09/05/2012, 01:51
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

No veo por ninguna parte del codigo donde haces la llamada a la llamada a la validacion ( $("#form").validate(); ).

Supongo que en algun lado la tendras si no no te funcionaria al meter todo el codigo en el mismo documento.

Tu problema reside en que llamas al plugin (seguramente) cuando termina de cargarse el documento (con la recurrida $(function(){ ... }); ) pero la realidad es que cuando cargas la pagina, el formulario no existe (ya que se generará dinamicamente al cargarlo con ajax mas tarde) por lo que la sentencia $("#form").validate(); , no encuentra ningun id form en el documento y no hace nada (cuando metes todo el codigo como si esta, pos si funciona).

Solución: añade $("#form").validate();, despues del responseText (es decir una vez que el formulario este insertado en el dom de la pagina)

Código:
<script type='text/javascript'>
   function formulario() {
       var Ajax=obtiene_http_request();
           Ajax.open("post","formulario.php", true);
           Ajax.onreadystatechange = function() {
                if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
                    document.getElementById('contenido').innerHTML=Ajax.responseText;
$("#form").validate();
                 }
           }
        Ajax.send(null);
     }
</script>
Si no fuera ese tu problema, comentanos de nuevo y vemos que puede ser.
  #5 (permalink)  
Antiguo 09/05/2012, 04:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

Hola kikeking1, la llamada al plugin validation la hago desde esta linea:

Código HTML:
Ver original
  1. <script type="text/javascript" src="js/reglas_validacion_publicar.js"></script>

Creo que si que tienes toda la razon el problema la tengo donde dices, pero si le añado la linea de codigo a la funcion js osea la linea esta:

Código Javascript:
Ver original
  1. $("id").validate();

luego en el archivo que tengo las reglas de validacion que tendria que cambiar si tengo algo asin:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $("#form").validate({
  3.  
  4.        /*aqui todas las reglas*/
  5.  
  6.     })
  7. })


Yo pense en meter el script de las reglas dentro de una funcion y llamar a esta funcion cuando invoco el formulario, pero no se que manera seria la mejor alguna idea?

saludos.
  #6 (permalink)  
Antiguo 09/05/2012, 04:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

Hola kikeking1, exacto ese era el problema, gracias al final hice lo que comentastes arriba pero metiendo las reglas dentro de una funcion e invocarlas cuando llamo al formulario.

Un saludo.
  #7 (permalink)  
Antiguo 12/06/2012, 10:16
Avatar de jofelrup  
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: porque no me funciona la libreria jquery cuando utilizo ajax

Cita:
Iniciado por pithon Ver Mensaje
al final hice lo que comentastes arriba pero metiendo las reglas dentro de una funcion e invocarlas cuando llamo al formulario.
Buen día amigo, disculpa la ignorancia, tengo el mismo problema que tenías y como veo que ya lo solucionaste me atrevo a pedirte que compartas el ejemplo de como incluyes las reglas dentro de una función y su invocación cuando llamas al formulario.

Saludos cordiales

José Ruiz

Etiquetas: ajax, formulario, funcion, html, input, js, libreria, php
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:48.