JQuery - Detectar change desde ventana hija

 
Vista:

Detectar change desde ventana hija

Publicado por Ajaramillo (1 intervención) el 16/07/2012 23:09:51
Buenas a tod@s,

Tengo los siguientes codigos

Codigo padre.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script language="javascript" type="text/javascript" src="js/jquery.js"></script>
    <script>
        $().ready(function () {
            $("#id").change( function () {
                alert("LLEGO");
            });
        return false;
        });
 
    function buscar(nom) {
        var llega = "hija.php?nom="+nom.value;
        window.open(llega,"BUSCAR","fullscreen=no,status=no,dependent=yes, width=350, height=400,resizable=0,top=220,left=600");
    }
    </script>
</head>
<body>
    <form id="depe" name="depe">
        <td>Id: </td><td><input type="text" id="id" name="id" value="" /></td>
        <br>
        <td>Nombre: </td><td><input type="text" id="nombre" name="nombre" value="" onChange="buscar(this);" /></td>
    </form<
</body>
</html>


hija.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
$arr[0]["id"] = "1";
$arr[0]["nombre"] = "A1";
$arr[1]["id"] = "2";
$arr[1]["nombre"] = "A2";
$arr[2]["id"] = "3";
$arr[2]["nombre"] = "A3";
 
?>
<html>
    <head>
        <script language="javascript">
            function enviar(a,b) {
                opener.document.depe.id.value=a.value;
                opener.document.depe.nombre.value=b.value;
                window.close();
            }
        </script>
    </head>
    <body>
        <form>
            <table border="1">
                <tr><th>Id</th><th>Nombre</th></tr>
        <?php
            $w=0;
            for($j=0; $j<3; $j++) {
                $h=$w+1;
                echo "<td><input type='radio' name='x' onclick='enviar(this.form.c$w, this.form.c$h);'><input type='hidden' name='c$w' value='". $arr[$j]['id'] ."'>". $arr[$j]['id']."</td><td>";
                echo "<input type='hidden' name='c$h' value='". $arr[$j]['nombre'] ."'>". $arr[$j]['nombre'];
                $w = $w + 2;
                echo "</TR>\n";
            }
        ?>
        </form>
    </body>
</html>


La idea es la siguiente: Al escribir algo en el campo Nombre se abre la ventana popUp (hija.php) mostrando una lista tipo radioBotton y al seleccionar alguna opción se actualizan los campos en la ventana padre (padre.html) hasta aquí ta todo ok.

El lío es que al hacer la actualización de los campos en la ventana padre (padre.html) se registra el cambio en la caja Id debería ejecutar el código jquery que hay en $("#id").change( function () { .... mostrando el alert LLEGO, pero esto no sucede.

Qué debo hacer para que funcione de esa manera?

Gracias de antemano por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Detectar change desde ventana hija

Publicado por xve (673 intervenciones) el 17/07/2012 08:08:40
Hola Ajaramillo, la teoría nos dice que tendría que funcionar, ya que si modificas el valor del formulario manualmente se ejecuta el evento y te muestra el alert("LLEGO") verdad?

Prueba a ejecutar el evento de manera manual desde la pagina hija.php con algo así:
window.opener.$("#id").change();

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Detectar change desde ventana hija

Publicado por Ajaramillo (1 intervención) el 17/07/2012 23:03:30
Gracias xve, esa es la solución.....

Ya lo acomodaré a mi programa según lo que necesito y cualquier cosa lo comentaré

Mil y mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar