funzione per popolare un drop down list

  • Creatore Discussione Creatore Discussione ans66
  • Data di inizio Data di inizio

ans66

Utente Attivo
27 Ago 2011
158
0
16
Sto creando questa funzione per popolare una drop down list:

Codice:
<script language="javascript">
function myFunc(sel)
{
//acquisisci l'elemento selezionato

if (sel.options[sel.selectedIndex].value=="Collettivita")
  {
var ddlPreferredMethodOfPhone = document.getElementById('Diametro');


for (i = 0; i < ddlPreferredMethodOfPhone.options.length-1; i++) {
ddlPreferredMethodOfPhone.options[i].remove;
}

    var Option0 = document.createElement("option");
    Option0.text = "";
    Option0.value = "0";
    ddlPreferredMethodOfPhone.options.add(Option0);

var option1 = document.createElement("option");
        option1.text = "fino a 30 mm.";
        option1.value = "30mm";

        ddlPreferredMethodOfPhone.options.add(option1);

var option2 = document.createElement("option");
        option2.text = "fino a 40 mm.";
        option2.value = "40mm";
        ddlPreferredMethodOfPhone.options.add(option2);

var option3 = document.createElement("option");
        option3.text = "fino a 50 mm.";
        option3.value = "50mm";
        ddlPreferredMethodOfPhone.options.add(option3);
        
var option4 = document.createElement("option");
        option4.text = "fino a 60 mm.";
        option4.value = "60mm";
        ddlPreferredMethodOfPhone.options.add(option4);
        
var option5 = document.createElement("option");
        option5.text = "fino a 80 mm.";
        option5.value = "80mm";
        ddlPreferredMethodOfPhone.options.add(option5);
  }

  
else
  {
  
var ddlPreferredMethodOfPhone = document.getElementById('Diametro');

var Option0 = document.createElement("option");
        Option0.text = "";
        Option0.value = "0";
        ddlPreferredMethodOfPhone.options.add(Option0);

var option1 = document.createElement("option");
        option1.text = "fino a 80 mm.";
        option1.value = "80mm";
        ddlPreferredMethodOfPhone.options.add(option1);

var option2 = document.createElement("option");
        option2.text = "fino a 100 mm.";
        option2.value = "100mm";
        ddlPreferredMethodOfPhone.options.add(option2);

var option3 = document.createElement("option");
        option3.text = "fino a 125 mm.";
        option3.value = "125mm";
        ddlPreferredMethodOfPhone.options.add(option3);
        
var option4 = document.createElement("option");
        option4.text = "fino a 140 mm.";
        option4.value = "140mm";
        ddlPreferredMethodOfPhone.options.add(option4);
        
var option5 = document.createElement("option");
        option5.text = "fino a 150 mm.";
        option5.value = "150mm";
        ddlPreferredMethodOfPhone.options.add(option5);  
}  


}
</script>

HTML:
Applicazione:<select id="applicazione"  onchange="myFunc(this);">
<option value="Industriali">Industriali</option>
<option value="Collettivita">Collettivita</option>

HTML:
Diametro: <select id="Diametro">
<option  </option>
</td>

Tale funzione non mi da' l'esatto risultato che vorrei perche:

Se seleziono l'opzione "Industriali" non ottengo alcuna reazione. Al contrario se seleziono "Collettivita" ho l'inserimento delle opzioni nel Combo "Diametro".
Se seleziono "Industriali" dopo Collettivita ottengo una reazione nel Combo "Diametro"
Non si svuota il Combo "Diametro" quando effettuo una seconda selezione

Ho provato a salvare questa funzione in un file esterno "MiaFunzione.js" ma non funzionava (non avevo alcun effetto) e pertanto sono stato obbligato ad inserire la funzione nella stessa pagina php.

Grazie tanto per l'aiuto.:):)
 
puoi azzerare le option come prima cosa quando richiami la funzione
Codice:
 function myFunc(sel)
    {
        var ddlPreferredMethodOfPhone = document.getElementById('Diametro');
        // azzero le option            
        ddlPreferredMethodOfPhone.options.length = 1;
per l'altro problema forse ti puo bastare aggiungere una option vuota prima delle due scelte
 
Ciric,

Hai ragione in entrambi i casi. Ho inserito la tua riga di codice e ho inserito un option vuota e tutto funziona.

Mi potresti aiutare a capire perche' se inserisco la funzione in un file esterno non ho alcuna reazione? Sbaglio qualche cosa?:)

Chiamo la funzione nel file MiaFunzione che si trova nella stessa directory con la seguente riga di codice:

<script type="text/javascript" src="MiaFunzione.js"></script>
 
Ultima modifica:
hai tolto i tag
<script language="javascript">
e
</script>
?
nel file esterno non ci vanno
 

Discussioni simili