Vous pouvez utiliser l'attribut onchange
de l'élément <select>
pour exécuter un code JavaScript à chaque changement de la liste déroulante.
<select onchange="myFunction(this)">
(vous voyez que je suis passé l'élément de menu déroulant lui-même comme argument de méthode, cela est juste fait pour des raisons pratiques)
Vous pouvez utiliser le element.options
pour obtenir toutes les options et element.selectedIndex
pour obtenir l'indice du moment option sélectionnée.
function myFunction(dropdown) {
var selectedOption = dropdown.options[dropdown.selectedIndex].value;
}
Vous pouvez utiliser document.getElementById()
pour récupérer tout élément par id
. Imaginez que vous avez les éléments d'entrée suivants:
<input type="text" id="foo">
<input type="text" id="bar">
alors vous pouvez les obtenir comme suit:
var foo = document.getElementById('foo');
var bar = document.getElementById('bar');
Vous pouvez utiliser le element.style.display
pour modifier la propriété CSS display
. Une valeur de block
signifie afficher et une valeur de none
signifie masquer. Maintenant, faites le calcul:
function myFunction(dropdown) {
var selectedOption = dropdown.options[dropdown.selectedIndex].value;
var foo = document.getElementById('foo');
var bar = document.getElementById('bar');
if (selectedOption == 'spoon') {
foo.style.display = 'none'; // Hide foo.
bar.style.display = 'block'; // Show bar.
} else {
foo.style.display = 'block'; // Show foo.
bar.style.display = 'none'; // Hide bar.
}
}
Pour en savoir plus sur Javascript et HTML DOM, je vous recommande this tutorial.
Une autre approche est d'avoir le gestionnaire d'événements pour des modifications à la sélection conduire une valeur de nom de classe sur le formulaire. Ensuite, vous pouvez contrôler ce qui est visible dans chaque état via CSS. Sale, bien sûr, s'il y a beaucoup d'options, mais cela signifie que vous laissez les entrailles du navigateur faire le travail DOM. – Pointy
@Pointy: Nous pouvons également lui proposer jQuery. Commencer simplement simple;) – BalusC