Désactiver/ activer une une liste déroulante

Signaler
-
 JangotheCool -
Salut!
J'ai un problème avec ce script pour désactiver et activer une liste déroulante.
le voici:
		<select id="com" name="com">
<option value="0">--Communes--</option>
<option value="1">Cotonou</option>
<option value="2">Ouidah</option>
</select>

<select name="choix" id="choix" >
<option value="0">--Choix du service--</option>
<option value="1">Hotel</option>
<option value="2">Restaurant</option>

</select> 


<script type="text/javascript">
var choice = document.getElementById('choix');
if (document.getElementById('com').value.length ==0){
choice.disabled=true;	
}
else {
choice.disabled=false;
}
</script>


Veuillez m'aider. Je suis débutant.

2 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

ton script n'est pas encapsuler dans une fonction ni associé à un event (onchange dans ton cas). Du coup il s'exécute une fois au chargement de la page et basta. Ensuite je suis pas sûr du fonctionnement recherché, la condition dans ton code JS n'a pas de sens pour moi.

Fais une recherche avec "html select onchange" et tu devrais trouver ton bonheur.
Merci jopop!
J'ai compris enfin pourquoi mon script ne marchait pas.
En fait je ne savais pas récupérer la valeur d'un select. C'était tout.
Après mes recherches je l'ai trouvé enfin:
var oSelect =  document.getElementById('com'),
        selectValue = oSelect.options[ oSelect.selectedIndex ].value;

Et le code complet avec l’évènement onchange qui exécute une fonction test():
		<select id ="com" name="com" onchange="return test();">
<option value="0">--Communes--</option>
<option value="1">Cotonou</option>
<option value="2">Ouidah</option>
</select>

<select name="choix" id="choix" disabled="disabled" >
<option value="0">--Choix du service--</option>
<option value="1">Hotel</option>
<option value="2">Restaurant</option>

</select> 


<script type="text/javascript">
function test(){
var choice = document.getElementById('choix');
var oSelect = document.getElementById('com'),
    selectValue = oSelect.options[ oSelect.selectedIndex ].value;
if(selectValue==0){		
choice.disabled=true;	
}	
else {
choice.disabled=false;
}
}
</script>