Skip to content
marzo 21, 2009 / Davide

Recuperare un valore da una pop-up con Javascript

Premessa
La possibilità di recuperare un valore da un finestra pop-up può essere di grande utilità in diverse applicazioni.
Nell’esempio che andremo a vedere ipotizziamo che nella pagina indirizzo.html sia presente un campo che deve contenere un indirizzo email selezionato da una rubrica (address_book.html) che si apre in un pop-up.
indirizzo.html
Il codice
indirizzo.html
indirizzo.html
Come funziona
Iniziamo ad analizzare indirizzo.html:
–  creiamo il form che ci occorre, dove oltre al campo indirizzo, abbiamo creato anche il puslante che ci permetterà di aprire la nostra rubrica.
<form name=”form1″>
<input type=”text” name=”indirizzo” /><input type=”button” name=”btAdb” value=”address book” onclick=”javascript:apri_adb();” />
</form>
– al click del pulsante “btAbd” verrà richiamata la funzione javascript “apri_adb”, la quale si occuperà di aprire in una finestra pop-up la rubrica (address_book.html):
function apri_adb()
{
window.open (“address_book.html”,””,”location=1,status=1,scrollbars=1,width=475,height=420″);
}
Address_book.html
Il codice
address_book
Come funziona
– creiamo un form (form2) che racchiuderà una combo-box con gli indirizzi disponibili:
<select name=”adb”>
<option value=””></option>
<option value=”pippo@disney.it”>pippo@disney.it</option>
<option value=”topolino@disney.it”>topolino@disney.it</option>
<option value=”paperino@disney.it”>paperino@disney.it</option>
</select>
– il pulsante “conferma” ci permetterà, richiamando la funzione “cattura” di aggiungere nella pagina chiamante gli indirizzi:
<input type=”button” name=”conferma” value=”OK” onclick=”cattura();” />
– la funzione javascript “cattura” verifica in prima istanza che il campo “adb” non sia vuoto, quindi controlla che il campo “indirizzo” impostato in indirizzo.html non sia  vuoto, nel qual caso aggiunge il valore della compo box “adb”. Se “indirizzo” ha già un volore allora prima di concatenarne un secondo aggiungerà “, “:
function cattura()
{
if (document.form2.adb.value != ”)
if (window.opener.document.forms[‘form1’].elements[‘indirizzo’].value == ”)
{
window.opener.document.forms[‘form1’].elements[‘indirizzo’].value = document.form2.adb.value;
}
else
{
window.opener.document.forms[‘form1’].elements[‘indirizzo’].value += “,” + document.form2.adb.value;
}
window.close();
}
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: