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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  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 1,196 veces)
TorKilah

Desconectado Desconectado

Mensajes: 6


Ver Perfil
javascript no se carga en capa dinámica. Por qué?
« en: 18 Diciembre 2012, 22:20 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.validate( 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('registros').innerHTML = obj.responseText;
  32.    }
  33. }
  34. </script>
  35.  

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


En línea

TorKilah

Desconectado Desconectado

Mensajes: 6


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

Al final lo solucioné de otra manera.

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

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)


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 7,340 Último mensaje 31 Diciembre 2010, 13:47 pm
por Riki_89D
Diferir carga de javascript
Desarrollo Web
bomba1990 0 1,376 Último mensaje 12 Julio 2011, 04:48 am
por bomba1990
Problema al crear columna dinamica con javascript
Desarrollo Web
1mpuls0 2 2,920 Último mensaje 23 Junio 2012, 19:09 pm
por 1mpuls0
javascript no se carga en capa dinámica. Por qué?
Java
TorKilah 4 2,473 Último mensaje 20 Diciembre 2012, 20:26 pm
por TorKilah
Jquery variable dinamica en capa
Desarrollo Web
OssoH 1 1,181 Último mensaje 17 Junio 2014, 13:47 pm
por OssoH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines