86 votes

Activer/Désactiver une liste déroulante dans jquery

Je suis nouveau sur jQuery et je souhaite activer et désactiver une liste déroulante à l'aide d'une case à cocher. Voici mon html :

 <select id="dropdown" style="width:200px">
    <option value="feedback" name="aft_qst">After Quest</option>
    <option value="feedback" name="aft_exm">After Exam</option>
</select>
<input type="checkbox" id="chkdwn2" value="feedback" />

De quel code jQuery ai-je besoin pour faire cela ? Je recherche également une bonne documentation/matériel d'étude jQuery.

184voto

Kris Krause Points 4704

Voici une méthode qui, je l'espère, est facile à comprendre :

http://jsfiddle.net/tft4t/

 $(document).ready(function() {
 $("#chkdwn2").click(function() {
   if ($(this).is(":checked")) {
      $("#dropdown").prop("disabled", true);
   } else {
      $("#dropdown").prop("disabled", false);  
   }
 });
});

13voto

Chris OnDaRocks Points 66

J'utilise JQuery > 1.8 et cela fonctionne pour moi...

 $('#dropDownId').attr('disabled', true);

11voto

Jayendra Points 27472

Essayer -

 $('#chkdwn2').change(function(){
    if($(this).is(':checked'))
        $('#dropdown').removeAttr('disabled');
    else
        $('#dropdown').attr("disabled","disabled");
})

2voto

ipr101 Points 15337

Pour activer/désactiver -

 $("#chkdwn2").change(function() { 
    if (this.checked) $("#dropdown").prop("disabled",true);
    else $("#dropdown").prop("disabled",false);
}) 

Démo - http://jsfiddle.net/tTX6E/

1voto

Muhammad Ahmad Points 11

Une meilleure solution sans if-else :

 $(document).ready(function() {
    $("#chkdwn2").click(function() {
        $("#dropdown").prop("disabled", this.checked);  
    });
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X