Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,625

    selezionare un elemento delle select popolata

    Carissimi,
    ho questo script, se voglio un elemento che popola la select SELEZIONATO come posso modificarlo?
    Grazie
    G.
    codice:
    		<script type="text/javascript">
    			//Dichiaro l'array myMenu'
    			var myMenu2 = new Array();
    			
    			//Definisco le voci del menu'
    			myMenu2['a1'] = new Array(); //ABITATIVO
    			myMenu2['a1'][''] = 'Seleziona nuova Tipologia';
    			myMenu2['a1']['appartamento_arredato'] = 'Appartamento: Arredato';
    			myMenu2['a1']['appartamento_non_arredato'] = 'Appartamento: Non Arredato';
    			myMenu2['a1']['posto_letto'] = 'Posto Letto';
    			myMenu2['a1']['villa'] = 'Villa';
    			myMenu2['a2'] = new Array(); //COMMERCIALE
    			myMenu2['a2'][''] = 'Seleziona ora la Tipologia';
    			myMenu2['a2']['dettaglio'] = 'Al Dettaglio';
    			myMenu2['a2']['ingrosso'] = 'All ingrosso';
    			myMenu2['a2']['ristorazione'] = 'Ristorazione';
    			myMenu2['a2']['studi_medici'] = 'Studi Medici';
    			myMenu2['a2']['studi_professionali'] = 'Studi Professionali';						
    			myMenu2['a3'] = new Array(); //UFFICIO
    			myMenu2['a3'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a3']['ufficio_appartamento'] = 'Appartamento';
    			myMenu2['a3']['locale_commerciale'] = 'Locale Commerciale';
    			myMenu2['a4'] = new Array(); //DEPOSITO
    			myMenu2['a4'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a4']['capannone'] = 'Capannone';
    			myMenu2['a4']['garage'] = 'Garage';
    			myMenu2['a4']['laboratorio_artigianale'] = 'Laboratorio Artigianale';
    			myMenu2['a4']['deposito_ingrosso'] = 'Ingrosso';			
    			myMenu2['a5'] = new Array(); //TERRENO
    			myMenu2['a5'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a5']['agricolo'] = 'Agricolo';
    			myMenu2['a5']['edificabile'] = 'Edificabile';
    			myMenu2['a5']['industriale'] = 'Industriale';
    			
    			function popola_select2(){
    				var select = document.forms['insert'].categoria; //Recupero la SELECT
    				var subselect = document.forms['insert'].tipologia; //Recupero la seconda SELECT
    				
    				// Recupero la categoria selezionata
    				var cat = select.options[select.selectedIndex].value;
    				
    				//Controllo che sia stata selezionata una categoria valida
    				if(cat.length != 0){
    					//Azzero il contenuto della seconda select
    					for (var i = subselect.length - 1; i >= 0; i--)
    						subselect.remove(i);
    					
    					//Popolo la seconda Select
    					for(value in myMenu2[cat]){
    						//Creo il nuovo elemento OPTION da aggiungere nella seconda SELECT
    						var NewOpt = document.createElement('option');
    						NewOpt.value = value; // Imposto il valore
    						NewOpt.text = myMenu2[cat][value]; // Imposto il testo
    						
    						//Aggiungo l'elemento option
    						try{
    							subselect.add(NewOpt, null); //Metodo Standard, non funziona con IE
    						}catch(e){
    							subselect.add(NewOpt); // Funziona solo con IE
    						}
    					}
    					
    				}
    			}
    		</script>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,625
    nessun aiuto?

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    nomeSelect.selectedIndex = numero; // da 0 all'indice massimo
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,625
    grazie br1, ma non mi funziona, sicuramente sbaglio qualcosa....
    ecco come la ho implementata:
    codice:
    		<script type="text/javascript">
    			//Dichiaro l'array myMenu'
    			var myMenu2 = new Array();
    			
    			//Definisco le voci del menu'
    			myMenu2['a1'] = new Array(); //ABITATIVO
    			myMenu2['a1'][''] = 'Seleziona ora la Tipologia';
    			myMenu2['a1']['appartamento_arredato'] = 'Appartamento: Arredato';
    			myMenu2['a1']['appartamento_non_arredato'] = 'Appartamento: Non Arredato';
    			myMenu2['a1']['posto_letto'] = 'Posto Letto';
    			myMenu2['a1']['villa'] = 'Villa';
    			myMenu2['a2'] = new Array(); //COMMERCIALE
    			myMenu2['a2'][''] = 'Seleziona ora la Tipologia';
    			myMenu2['a2']['dettaglio'] = 'Al Dettaglio';
    			myMenu2['a2']['ingrosso'] = 'All ingrosso';
    			myMenu2['a2']['ristorazione'] = 'Ristorazione';
    			myMenu2['a2']['studi_medici'] = 'Studi Medici';
    			myMenu2['a2']['studi_professionali'] = 'Studi Professionali';						
    			myMenu2['a3'] = new Array(); //UFFICIO
    			myMenu2['a3'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a3']['ufficio_appartamento'] = 'Appartamento';
    			myMenu2['a3']['locale_commerciale'] = 'Locale Commerciale';
    			myMenu2['a4'] = new Array(); //DEPOSITO
    			myMenu2['a4'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a4']['capannone'] = 'Capannone';
    			myMenu2['a4']['garage'] = 'Garage';
    			myMenu2['a4']['laboratorio_artigianale'] = 'Laboratorio Artigianale';
    			myMenu2['a4']['deposito_ingrosso'] = 'Ingrosso';			
    			myMenu2['a5'] = new Array(); //TERRENO
    			myMenu2['a5'][''] = 'Seleziona ora la Tipologia';	
    			myMenu2['a5']['agricolo'] = 'Agricolo';
    			myMenu2['a5']['edificabile'] = 'Edificabile';
    			myMenu2['a5']['industriale'] = 'Industriale';
    			
    			function popola_select2(){
    				var select = document.forms['insert'].categoria; //Recupero la SELECT
    				var subselect = document.forms['insert'].tipologia; //Recupero la seconda SELECT
    				
    				// Recupero la categoria selezionata
    				var cat = select.options[select.selectedIndex].value;
    				
    				//Controllo che sia stata selezionata una categoria valida
    				if(cat.length != 0){
    					//Azzero il contenuto della seconda select
    					for (var i = subselect.length - 1; i >= 0; i--)
    						subselect.remove(i);
    					
    					//Popolo la seconda Select
    					for(value in myMenu2[cat]){
    						//Creo il nuovo elemento OPTION da aggiungere nella seconda SELECT
    						var NewOpt = document.createElement('option');
    						NewOpt.value = value; // Imposto il valore
    						NewOpt.text = myMenu2[cat][value]; // Imposto il testo
    						tipologia.selectedIndex = 3; // da 0 all'indice massimo
    						//Aggiungo l'elemento option
    						try{
    							subselect.add(NewOpt, null); //Metodo Standard, non funziona con IE
    						}catch(e){
    							subselect.add(NewOpt); // Funziona solo con IE
    						}
    					}
    					
    				}
    			}
    		</script>
    Grazie
    g.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se intendi riferirti a questa:
    var subselect = document.forms['insert'].tipologia; //Recupero la seconda SELECT

    allora devi scrivere:
    subselect.selectedIndex = 3;

    ma spostala dopo la chiusura del ciclo for
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,625
    perfetto come sempre, grazie br1

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.