90

I am new to jQuery and I want to enable and disable a dropdown list using a checkbox. This is my 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" />

What jQuery code do I need to do this? Also searching for a good jQuery documentation/study material.

Al.G.
  • 4,327
  • 6
  • 31
  • 56
ARUN P.S
  • 1,713
  • 2
  • 16
  • 19

11 Answers11

191

Here is one way that I hope is easy to understand:

http://jsfiddle.net/tft4t/

$(document).ready(function() {
 $("#chkdwn2").click(function() {
   if ($(this).is(":checked")) {
      $("#dropdown").prop("disabled", true);
   } else {
      $("#dropdown").prop("disabled", false);  
   }
 });
});
Kris Krause
  • 7,304
  • 2
  • 23
  • 26
15

I am using JQuery > 1.8 and this works for me...

$('#dropDownId').attr('disabled', true);
Chris Rosete
  • 1,240
  • 15
  • 13
  • This should be the accepted answer(In early 2019) considering each loop etc have performance implications and using the attr method is the most performant way of doing it. – SeaWarrior404 Feb 11 '19 at 10:18
11

Try -

$('#chkdwn2').change(function(){
    if($(this).is(':checked'))
        $('#dropdown').removeAttr('disabled');
    else
        $('#dropdown').attr("disabled","disabled");
})
Jayendra
  • 52,349
  • 4
  • 80
  • 90
2
$("#chkdwn2").change(function(){
       $("#dropdown").slideToggle();
});

JsFiddle

genesis
  • 50,477
  • 20
  • 96
  • 125
2

To enable/disable -

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

Demo - http://jsfiddle.net/tTX6E/

ipr101
  • 24,096
  • 8
  • 59
  • 61
1

A better solution without if-else:

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

try this

 <script type="text/javascript">
        $(document).ready(function () {
            $("#chkdwn2").click(function () {
                if (this.checked)
                    $('#dropdown').attr('disabled', 'disabled');
                else
                    $('#dropdown').removeAttr('disabled');
            });
        });
    </script>
santosh singh
  • 27,666
  • 26
  • 83
  • 129
0
$("#chkdwn2").change(function() { 
    if (this.checked) $("#dropdown").prop("disabled",'disabled');
}) 
Baqer Naqvi
  • 6,011
  • 3
  • 50
  • 68
0
$(document).ready(function() {
 $('#chkdwn2').click(function() {
   if ($('#chkdwn2').prop('checked')) {
      $('#dropdown').prop('disabled', true);
   } else {
      $('#dropdown').prop('disabled', false);  
   }
 });
});

making use of .prop in the if statement.

RossGamble
  • 16
  • 1
0

this is to disable dropdown2 , dropdown 3 if you select the option from dropdown1 that has the value 15

$("#dropdown1").change(function(){
            if ( $(this).val()!= "15" ) {
                $("#dropdown2").attr("disabled",true);
                $("#dropdown13").attr("disabled",true);

            }
0

Your Selector should be either name of select, id (#) or class (.),

This is if you want to disable:

$("#your-selector").prop("disabled", true);

This is if you want to enable:

$("#your-selector").prop("disabled", false); 
Imad Ullah
  • 929
  • 9
  • 17