elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  javascript no se carga en capa dinámica. Por qué?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: javascript no se carga en capa dinámica. Por qué?  (Leído 3,304 veces)
TorKilah

Desconectado Desconectado

Mensajes: 6


Ver Perfil
javascript no se carga en capa dinámica. Por qué?
« en: 18 Diciembre 2012, 19:21 pm »

Buenas!! Bueno, antes que nada, gracias por vuestro tiempo y, antes de preguntar aquí he googleado mucho. Solo que yo no soy programador, estoy aprendiendo por mi cuenta, y sobre lo que de momento he encontrado, hablan demasiado técnicamente para mis niveles. Jejeje, ahora, al lío:

Parte A - La cuestión es que tengo un index.php, y en esa página tengo una función con Ajax, que llama a otra página php (registro.php) dentro de una capa css (.contenedor) haciendo click a un botón (funciona)

Parte B - En el formulario de registro aplico un script para falidar el e-mail tal que así: (también funciona sin problemas. PERO SOLO EJECUTANDOLO EN REGISTRO.PHP)
Código
  1. <script type="text/javascript">
  2. var f20 = new LiveValidation('#f20');
  3.          f20.add( Validate.Email );
  4. </script>
  5.  

Parte C y problema en cuestión... Cuando en el index.php le doy click al botón, se carga dinámicamente el formulario de registro.php en el div.contenedor, peeeero... no funciona el script que valida el e-mail...:

He pensado que lo más probable es que sea alguna incompatibilidad... como que el script que se carga en registro.php se esté pegando con otro que haya en index.php pero no sabría por donde buscar... :S, tengo la última libreria jQuery-1.8.2

He probado también de cargar la librería del script del validador en el index... no se por que... supongo que por barajar posibilidades, ya os he dicho que no tengo ni papa... voy haciendo chino chano, hehe.

Este es el script que utilizo en el index.php para que se cargue registro.php dinámicamente.

Código
  1. <script type="text/javascript">
  2. var obj;
  3.  
  4. function generaPeticion(url) {
  5. if (window.XMLHttpRequest) {
  6.    // Obtener un nuevo objeto
  7.    obj = new XMLHttpRequest();
  8.    // Indicar la funcion de retorno
  9.    obj.onreadystatechange = procesaRespuesta;
  10.    // Método  GET con la url; "true" para asincronica
  11.    obj.open("GET", url, true);
  12.    // null for GET with native object
  13.    obj.send(null);
  14.  // IE/Windows ActiveX object
  15.  
  16.  } else if (window.ActiveXObject) {
  17.    obj = new ActiveXObject("Microsoft.XMLHTTP");
  18.    if (obj) {
  19.      obj.onreadystatechange = procesaRespuesta;
  20.      obj.open("GET", url, true);
  21.      obj.send();
  22.    }
  23.  } else {
  24.    alert("Su navegador no soporta AJAX");
  25.  }
  26. }
  27.  
  28. function procesaRespuesta() {
  29.  
  30.    if (obj.readyState == 4) {
  31.          document.getElementById('contenedor').innerHTML = obj.responseText;
  32.    }
  33. }
  34. </script>
  35.  

Si falta algún dato decidme por favor!! creo haber expuesto lo necesario!!


« Última modificación: 18 Diciembre 2012, 22:11 pm por TorKilah » En línea

TorKilah

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: javascript no se carga en capa dinámica. Por qué?
« Respuesta #1 en: 18 Diciembre 2012, 22:00 pm »

Ninguna ideilla?!


En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: javascript no se carga en capa dinámica. Por qué?
« Respuesta #2 en: 18 Diciembre 2012, 23:06 pm »

Con que no funciona, ¿a qué te refieres? A que salta algún error por la consola, no hace nada...

No se que estarás usando para ir "depurando" lo que haces, así que si comentas un poco eso pues mejor que mejor. Tampoco estaría de más que pusieses el código completo de index y registro, para que así podamos ver todo lo que hay.

También, puesto que usas jQuery, te indico que puedes hacer uso de la función $.ajax({...}) que viene en el framework, en lugar de hacer las peticiones con el código que tienes, te lo digo más que nada porque con la función que proporciona jQuery tienes más opciones que quién sabe, quizás podrían interesarte.

Saludos.
En línea

#!drvy


Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: javascript no se carga en capa dinámica. Por qué?
« Respuesta #3 en: 19 Diciembre 2012, 00:07 am »

Hola,

@TorKilah, mencionarte que esto es un foro no un chat. Apenas han pasado 3 horas desde que escribiste el post para volver a publicar "Ninguna ideilla?!"..  no esperes una respuesta tan rápido.

Normalmente, cuando cargas un script dinamicamente (osease, ajax) debes saber que es muy probable que deje de funcionar.  Eso pasa porque a la hora de cargar las funciones javascript el DOM todavía no ha sido alterado por el evento ajax. Por tanto para esas funciones, lo que cargas con el ajax es invisible.

Te recomiendo usar jQuery y su evento .live() que se encargara de procesar cualquier objeto existente o creado en un futuro (carga ajax.)

Aparte, estaría bien que depurases el código como te ha mencionado @Valkyr mediante el uso de la consola javascript que viene incluida en la mayoría de los navegadores.

PD: Java es un lenguaje diferente a javascript. El foro correcto para este tema seria Desarrollo Web.

Saludos
En línea

TorKilah

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: javascript no se carga en capa dinámica. Por qué?
« Respuesta #4 en: 20 Diciembre 2012, 20:26 pm »

Hola!!! gracias por vuestras respuestas!!!

Al final lo solucioné de otra manera. Buscando, buscando, buscando y buscando, he ido leyendo cosas sobre la función .live() y que está desfasada, que no es muy recomendable y tal... entonces pensé... en la página b.php funciona bien el script, cuando cargo la página b.php en la a.php no se carga el script... omg...
Como lo podría hacer? pues bien, deduje que podría haber alguna manera de llamar a un script dinámicamente haciendo algún evento sobre algún objeto... y efectivamente, buscando más encontré la manera de hacer esto:

Siendo #registros la capa .css donde quiero cargar el formulario de la página b.php

Código
  1.  $('#registros').click(function ()
  2.      {
  3.        $.getScript("js/livval.js", function (data, estado)
  4.      {
  5.           if (estado == 'success')
  6.           {
  7.              var f20 = new LiveValidation('f20');
  8.              f20.add( Validate.Email );
  9.           }
  10.           else
  11.       {
  12.          alert("Error. Inténtalo de nuevo");
  13.           }
  14.      });
  15.      });
  16.  

Que os parece?? creéis que habría alguna forma mejor de ejecutar este concepto? (seguro que la hay)

Y para el que se vea en mi situación, por lo menos ya tiene una forma preventiva de salir del apuro, hehehe.


***Aprender programación me está resultando altamente adictivo!!! huahuahua!!!***
« Última modificación: 20 Diciembre 2012, 20:36 pm por TorKilah » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Efecto Capa Sobrepuesta en javascript (No frameworks)
Desarrollo Web
Riki_89D 7 8,555 Último mensaje 31 Diciembre 2010, 13:47 pm
por Riki_89D
Diferir carga de javascript
Desarrollo Web
bomba1990 0 2,147 Último mensaje 12 Julio 2011, 04:48 am
por bomba1990
Problema al crear columna dinamica con javascript
Desarrollo Web
1mpuls0 2 3,770 Último mensaje 23 Junio 2012, 19:09 pm
por 1mpuls0
javascript no se carga en capa dinámica. Por qué?
Desarrollo Web
TorKilah 1 2,107 Último mensaje 20 Diciembre 2012, 20:29 pm
por TorKilah
Jquery variable dinamica en capa
Desarrollo Web
OssoH 1 2,106 Último mensaje 17 Junio 2014, 13:47 pm
por OssoH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines