Désactiver/ activer une une liste déroulante

JangotheCool - 18 févr. 2013 à 18:18
 JangotheCool - 20 févr. 2013 à 16:23
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

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
19 févr. 2013 à 13:48
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.
0
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>
0
Rejoignez-nous