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

    Inserire una <option> nel documento da nuova finestra

    Salve,
    dunque nel documento ho una <select id="lnk_aggiungi"> con delle scelte che rappresentano delle "categorie", ed accanto un bottone per aggiungerne altre, che quando premuto apre una nuova finestra.
    Nella finestra aperta, c'è la possibilità di aggiungere una nuova categoria, e fatto ciò, la mia intenzione è che la finestra si chiuda e la nuova categoria appaia "magicamente" nella select suddetta.

    Il codice che ho scritto è :
    codice:
    function chiudi(ref_id, opt_id, opt_name){
    	ncat = new Option(opt_id, opt_name, true, true);
    	select = window.opener.document.getElementById('lnk_' + ref_id);
    	select.options[select.length] = ncat;
    	//self.close();
    }
    dove ref_id é la parte finale dell'id della select, in questo caso 'aggiungi', opt_id e opt_name sono rispettivamente valore (id sul database) e nome della categoria.

    Domanda, perchè non funziona? Il debugger di IE mi da errore sconosciuto sulla 3^ riga (select.options...).

    Ciau!
    - Dean

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    bug conosciuto e mai risolto,
    ma se la funzione si trovasse nella principale, richiamola dalla popup e passando i valori desiderati, aggireresti il problema
    ciao

  3. #3
    ciao, ho risolto così :
    codice:
    function chiudi(ref_id, opt_id, opt_name){
    	myDocument = window.opener.document;
    	myOption = myDocument.createElement('option');
    	myOption.value = opt_id;
    	myOption.text = opt_name;
    	myOption.selected = true;
    	mySelect = myDocument.getElementById('lnk_categ_' + ref_id);
    	mySelect.add(myOption, mySelect.length);
    	self.close();
    }
    tuttavia, come si fa a chiamare una funzione della finestra 'madre' nella nuova finestra 'figlio' ?

    Ciau & grazie!
    - Dean

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    anche cosi' va bene, anche se il supporto di add mi sembra sia stato esteso agli altri browser solo di recente

    come si fa a chiamare una funzione della finestra 'madre' nella nuova finestra 'figlio' ?
    window.opener.nomeFunzione('valori');

    ciao

  5. #5
    Piuttosto che mySelect.add opterei per un mySelect.appendCild.

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    certamente, infatti non avevo provato e add non mi sembra funzionare con firefox
    quindi va usato appendChild

    tra l' altro questo
    myOption.text = opt_name;
    a me su IE7 genera una nuova option completamente bianca, priva di testo
    quindi forse e' il caso di fare
    codice:
    myOption.appendChild(myDocument.createTextNode(opt_name));
    ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.