2010-10-19 6 views
1

Comment puis-je alerter la valeur sélectionnée par l'utilisateur à partir d'une liste déroulante de sélection en Javascript. Dans cet exemple, je veux stocker la valeur dans une variable et l'alerter à l'utilisateur.Comment obtenir la valeur d'un menu déroulant de sélection en JavaScript?

<script type="text/javascript"> 

function processmyform() { 

    var chosenAnimal = // what goes here 

    alert(chosenAnimal); 

} 
</script> 

<form action=""> 
    <select name="animal" class="favAnimal"> 
     <option value="dog">Dog</option> 
     <option value="cat">Cat</option> 
     <option value="bird">Bird</option> 
    </select> 
    <a href="#" onclick="processmyform()" /> 
</form> 
+0

Utilisez-vous un framework JavaScript comme jQuery? –

Répondre

3

Tout d'abord, il serait plus facile si votre boîte de sélection avait une carte d'identité. Ensuite, vous pouvez utiliser getElementById.

var animalSelectBox = document.getElementById('animal'); 
alert(animalSelectBox.options[animalSelectBox.selectedIndex].value); 

Au lieu de cela, voici comment le faire en utilisant getElementsByName (notez celui-ci est au pluriel).

var arr = document.getElementsByName('animal'); //will be an array 
alert(arr[0].options[arr[0].selectedIndex].value); 
+0

Soyez prudent, cependant, getElementsByName a un comportement non standard dans IE et Opera (obtient des éléments qui correspondent au nom * ou * id), et ne fonctionnera pas sur certains éléments dans IE. (Voir http://www.quirksmode.org/dom/w3c_core.html) –

+0

Cela devrait fonctionner correctement pour cet exemple (bien que l'ajout d'un identifiant à la sélection soit préférable, car tout le monde semble être d'accord) –

1

Je généralement mis un id sur la sélection, comme id="animal"

Ensuite, vous pouvez faire:

var animal = document.getElementById("animal"); 
var animalValue = animal.options[animal.selectedIndex].value; 
alert(animalValue); 
1

Je fixerait un id sur votre select-tag:

<select id="animal" name="animal" class="favAnimal"> 

Javascript:

var chosenAnimal = document.getElementById("animal").value; 
alert(chosenAnimal); 
1

Utilisez selectedIndex

<form id="yourForm" action="#"> 
    <select id="animal" name="animal" class="favAnimal"> 
     <option value="dog">Dog</option> 
     <option value="cat">Cat</option> 
     <option value="bird">Bird</option> 
    </select> 
    <input type="submit" value="Submit" /> 
</form> 

window.onload = function(){ 
    var selectElement = document.getElementById('animal'); 

    document.getElementById('yourForm').onsubmit = function(){ 
     var index = selectElement.selectedIndex; 
     alert(selectElement.options[index].value); 
     alert(selectElement.options[index].text); 
     alert(index); 
     return false; 
    }; 
}; 
Questions connexes