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

    Funzione per creare un menù a tendina

    Salve, avrei bisogno di una funzione che mi crei dinamicamente un menù a tendina con il numero di opzioni specificate in input. io ho creato una bozza:

    codice:
    function generaMenuTendina(numeroOpzioni) {
       document.write('<select>');
       for (var i=0; i < numeroOpzioni; i++)
          document.write('<option value="'+i+'">'+i+'</option>');
       document.write('</select>');
    }
    Ma la stampa all'interno del for non funge, probabilmente per qualche errore con gli apici... Sapreste illuminarmi? (Scusate la domanda banale di un novizio)

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quando il documento/pagina e creato non puoi usare il document.write perché sovrascriverebbe lo stesso prova cosi:
    codice:
    function generaMenuTendina(numeroOpzioni) {
       document.getElementById('selectdinamica').innerHTML= '<select>';
       for (var i=0; i < numeroOpzioni; i++){
          document.getElementById('selectdinamica').innerHTML + ='<option value="'+i+'">'+i+'</option>';}
       document.getElementById('selectdinamica').innerHTML + = '</select>';
    }
    nel documento/body aggiungerai un div che conterrà la select appena creata:
    <div id="selectdinamica"></div>

    ma l'operazione migliore sarebbe crearla tramite DOM http://javascript.html.it/guide/lezi...del-documento/
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ti ringrazio per avermi spiegato l'aspetto 'teorico' della faccenda. In effetti la soluzione che prevede di cambiare il contenuto del div non è molto elegante. Provo a leggere la guida e in caso ri-posto.
    Grazie mille.

  4. #4
    Ho letto l'articolo e in effetti più che generare tutto il menù a tendina mi sono reso conto che in realtà ciò che mi serve è solo aggiungere le voci ad un menù esistente. Mi sono quindi creato questo script:

    codice:
    function addOptions(idMenu)
    {
    	var menu = document.getElementById(idMenu);
    	var opzione;
    
    	//Aggiungo le opzioni
    	for(var i = 0; i < 9; i++) {
    		opzione = new Option(String(i),i);
    		menu.options[i] = opzione;
    	}
    }
    Ma ancora non và... Stavolta dovrebbe essere lecito poter aggiungere opzioni al documento completo, o mi sbaglio? Illuminatemi per cortesia

  5. #5
    Ehm... Scusate se richiedo, qualcuno saprebbe aiutarmi?

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A me questo funziona cioè aggiunge 5 option alle 3 iniziali in totale 8 (9 contando lo 0)
    codice:
    <!DOCTYPE xhtml PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
    <html>
    <head>
    <TITLE>default bottom scrolling div</TITLE>
    
    <script type="text/javascript">
    function addOptions(idMenu)
    {
    	var menu = document.getElementById(idMenu);
    	var opzione;
    
    	//Aggiungo le opzioni
    	for(var i = 0; i < 9; i++) {
    		opzione = new Option(String(i),i);
    		menu.options[i] = opzione;
    	}
    }
    </script>
    
    </head>
    <body text="#000000" bgcolor="#909090">
    <form id="form1" method="post" action="">
      
    
    
        <select name="sel" id="sel" onchange="addOptions('sel')" >
          <option value="0">0</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
        </select>
      </p>
    </form>
    </body>
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.