Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Passare dati form da madre a figlia e viceversa

    Ho due pagine che vorrei far comunicare tra loro passando i valori del form: la prima pagina (pagina madre diciamo) è questa


    <html>
    <head>
    <title>principale</title>
    <script language="javascript">

    function tras(){
    aa=window.open('figlia.html');
    bb=self.document.form1.testo1.value;
    aa.document.f1.testofiglia.value=bb; //riga 12
    }

    </script>
    </head>
    <body>
    <form method="POST" name="form1">


    <input type="text" name="testo1" size="20">

    <input type="button" value="Apri con valore passato" name="B1" onClick="tras()"></p>
    </form>
    </body>
    </html>


    La seconda è questa (figlia.html)


    <html>
    <head>
    <title>figlia</title>
    <script language="javascript">
    function tras(){
    bb=self.document.f1.testofiglia.value;
    window.opener.document.form1.testo1.value=bb;
    self.close();
    }
    </script>
    </head>
    <body >
    <form method="POST" name="f1">


    <input type="text" id="testofiglia" name="testofiglia" size="20" >

    <input type="button" value="trsferisci" name="B1" onClick="tras()">

    </p>
    </form>
    </body>
    </html>


    Aprendo la figlia, tuttavia, il valore presente nella input della madre non viene passato, mentre quando scrivo qualcosa nella input della figlia, il tutto torna correttamente alla madre. Che cosa sbaglio? La console javascript mi dice

    Errore: aa.document.f1 has no properties
    File sorgente: file:///var/www/html/Javascript/madre.html
    Riga: 12

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Stai cercando di agire su un oggetto che ancora non esiste... la pagina nella popup ha bisogno di un certo tempo per essere caricata.

    Prova:
    codice:
    var aa;
    function tras(){ 
      aa=window.open('figlia.html'); 
      setTimeout("riempi()",100);
    }
    function riempi() {
      if (aa.document.f1.testofiglia) {
        bb=self.document.form1.testo1.value; 
        aa.document.f1.testofiglia.value=bb; 
      } else {
        setTimeout("riempi()",100);
      } 
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.