Afficher/cacher zone de texte selon choix
Bonjour!
j'ai le problème classique, j'ai une liste déroulante avec un choix autre. Quand celui-ci est sélectionné je veux qu'une zone de texte
apparaisse. cela marche bien seulement quand j'ai sélectionné une fois autre et que la zone de texte est affichée, si je clique sur un autre choix,
la zone de texte ne s'efface pas!
Si vous voulez bien m'aider, merci :)
Voici mon code ;
Code:
1 2 3 4 5 6 7 8 9
| <tr>
<td><label for="q6">6- Raison : </label></td>
<td><select name="q6" id="q6" onchange="selectChange(this)">
<option value="1_choix1">1) choix1</option>
<option value="2_choix2">2) choix2</option>
<option value="q6_autre">3) Autre</option>
</select></td>
<td id="q6_autre" style="display: none;"> Précisez : <input type="text" name="q6_autre" /></td>
</tr> |
et ma fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function selectChange(selected){
var val = selected.options[selected.selectedIndex].value;
var reg = /^q\d+_autre$/;
if (reg.exec(val)){
alert("ok");
document.getElementById(val).style.display = "block"; // j'ai testé avec "" et "block"
}
else{
alert("non");
document.getElementById(val).style.display = "none";
}
} |