2011-07-07 4 views
0

Je voudrais savoir quelle serait la meilleure façon de parcourir une liste déroulante en html pour voir si et l'élément a été sélectionné ou non.pour voir si l'élément dans dropdownList a été sélectionné

Je sais en C# ce serait quelque chose le long des lignes de

int selected = cmbFamily.SelectedIndex; 

     for (int loop = 0; loop < cmbFamily.Items.Count; loop++) 
     { 
      if (selected == -1) 
      { 
       MessageBox.Show("please select an item", "Please", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       break; 
      } 
     } 

comment pourrais-je aller sur ce faisant avec javascript?

<tr style="font-size:12pt; font-weight:bold; color:#FFFFFF; font-family:High Tower Text;"> 
        <td>Family to join:</td> 
        <td><select name="drpFamily"> 
         <option/>-select- 
         <option/>Gambino 
         <option/>Genovese 
         <option/>Lucchese 
         <option/>Colombo 
         <option/>Bonanno 
        </select><font color="red">*</font></td> 
       </tr> 

Amitiés Arian

+0

Votre code C# me semble horrible: à quoi sert la boucle? –

+1

N'utilisez pas ''! Ce n'est plus 1999. – epascarello

Répondre

1

Tout d'abord votre code HTML est totalement faux. Il n'est pas </option>text, il est <option>text</option>

Pour boucler les options, il est aussi simple que

//var options = document.getElementById("selectId").options; 
var options = document.formName.selectName.options; 
for(var i=0;i<options.length;i++){ 
    if(options[i].selected){ 
    alert(options[i].value); 
    } 
} 

, mais il n'y a pas besoin de boucle à travers une seule sélection. Le plus simple est d'utiliser l'index sélectionné pour un seul choix.

//var sel = document.getElementById("selectId"); 
var sel = document.formName.selectName; 
var opt = sel.options[sel.selectedIndex]; 
alert(opt.value); 
+0

Merci pour le pointeur sur le code ... – Arianule

1

Première: your HTML is wrong.

Il devrait être

<option>-select- 
... 

ou

<option>-select-</option> 
... 

Si vous voulez juste la valeur sélectionnée, vous pouvez l'obtenir via l'attribut value de l'élément select:

var value = document.getElementsByName('drpFamily')[0].value 

Cela ne fonctionne que s'il n'y a qu'un seul élément avec le nom drpFamily. Sinon, vous devez trouver un moyen approprié pour le sélectionner.

Vous pouvez le comparer à la première valeur (qui est sélectionné par défaut)

if(value !== '-select-') 

Vous pouvez également ajouter un écouteur d'événement change à l'élément de sélection:

document.getElementsByName('drpFamily')[0].onchange = function() { 
    if(this.value !== '-select-') { 
     //a value other '-select-' than was selected 
    } 
} 
Questions connexes