Comment faire pour afficher/masquer les divs quand sélectionnez options utilisateur clique sur

J'ai une boîte de sélection et souhaitez afficher un texte d'aide caché dans un div lorsque vous cliquez sur une option:

<select  onchange="optionCheck()" multiple="multiple" name="test" id="options" size="15" class="form-select">
    <option value="1">option 1</option>
    <option value="2">option 2</option>
</select>

<div id="help1" style=visibility:hidden>help text 1</div>
<div id="help2" style=visibility:hidden>help text 2</div>

<script type="text/javascript">
    function optionCheck(){
        var option = document.getElementById("options").value;
        if(option == "1"){
            document.getElementById("help1").style.visibility ="visible";
            document.getElementById("help2").style.visibility ="hidden";
        }
        if(option == "2"){
            document.getElementById("help2").style.visibility ="visible";
            document.getElementById("help1").style.visibility ="hidden";
        }
    }
</script>

Comment puis-je créer une simple boucle donc je n'ai pas d'écrire "si" énoncés pour chaque option?

 document.getElementById(option).style.visibility ="visible";

n'est pas le javascript et moi de ne pas obtenir le long bien 😉

Aussi, est-il un moyen simple pour masquer toutes les autres divs lorsqu'une option est sélectionnée?

tout d'abord, ce n'est pas une bonne pratique pour définir vos événements dans votre code html. Ces jours, il ya de bonnes solutions de rechange disponibles (tous les définissant dans votre javascript) et cela repose sur une chaîne de prise en evaled, et c'est juste pas bon.
Ensuite, vous devez placer des guillemets autour de visibility:hidden. Il peut ne pas casser votre code en ce moment, mais ce n'est aucune raison de le faire comme cela. Vous avez juste ne faut pas utiliser les propriétés de style, mais nous ferons semblant de ne pas voir que.
Sont tous de vos options va être numérotées et la div sera donné id de "help_" où le trait de soulignement est un nombre correspondant?
oui, ils sont tous comptés comme ça

OriginalL'auteur uwe | 2012-04-21