Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296

    Scambiare valore radiobutton da popup a finestra principale

    Buongiorno a tutti ho un quesito da porre.
    Ho necessità di far tornare il valore di un radio button da un popup alla windows principale.
    In questo modo funziona:

    Nella pagina chiamante (principale):

    Codice PHP:
    <script>
     function 
    apriWin()
     { 
         
    window.open('popup.php','newwin','width=400, height=200, scrollbars=yes, resizable=yes')
     }
    </script>



    <form method="post" name="newform">
    <input type="text" id="testo1" name="testo1" rows="7" cols="40"> </textarea>
    <input type="button" value="Aiuto" onClick="apriWin()">

    </form> 

    nel popup:


    Codice PHP:
    <script language="javascript">
    function 
    valore(){
     
    window.opener.document.forms['newform'].testo1.value document.form1.R1.value;
     
    window.open('','newwin'.close()
    }
    </script>



    <form name="form1">
    <input type="button" onClick="valore();" value="Invia" >
    <input type='radio' value='valore1' name='R1'>
    </form> 

    Tutto questo funziona se ho un solo radiobutton se ne ho più di uno (per esempio in un ciclo di while), mi restituisce il valore "undefined". Che devo fare per avere il valore del "radio" selezionato?

    Vi ringrazio

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    function valore(){
      var rds=document.form1.R1, l=rds.length, val='';
    
      if(l>1){
        for(var k=0;k<l;++k){
          if(rds[k].checked==true){
            val=rds[k].value;
            break;
          }
        }
      }
      else {
        val=rds.value;
      }
      window.opener.document.forms['newform'].testo1.value=val;
      self.close();
    }

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ops, anche questo
    else {
    val=rds.value;
    }
    va verificato sia segnato

    codice:
    function valore(){
      var rds=document.form1.R1, l=rds.length, val=false;
    
      if(l>1){
        for(var k=0;k<l;++k){
          if(rds[k].checked){
            val=rds[k].value;
            break;
          }
        }
      }
      else {
        if(rds.checked) val=rds.value;
      }
      if(val!==false){
        window.opener.document.forms['newform'].testo1.value=val;
        self.close();
      }
    }

  4. #4
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Grazie Xnod, anche per la velocità.
    tanto per completezza, posto anche la soluzione adottata (che sfrutta la tua indicazione)
    La function valore che avevo scritto prima diventa:

    codice:
     
    function valore()
    {
             valoreradio = ""
             for (var i=0;i< document.form1.R1.length;i++)
             {
                if(document.form1.R1[i].checked) valoreradio=document.form1.R1[i].value; 
             }
    
             window.opener.document.forms['newform'].testo1.value = valoreradio;
             self.close(); 
    }</script>

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.