Disable input field when checkbox toggled (JQuery)

后端 未结 2 1136
天命终不由人
天命终不由人 2021-01-23 08:13

I have a list of checkboxes and with every checkbox, there is an input field. If I check the checkbox, the inputfield has to be disabled. Example:

Checkbox 1 -          


        
相关标签:
2条回答
  • 2021-01-23 08:38

    if you have this "very" simple structure

    <input type="checkbox" name="" /><input type="text" name="" />
    <input type="checkbox" name="" /><input type="text" name="" />
    <input type="checkbox" name="" /><input type="text" name="" />
    <input type="checkbox" name="" /><input type="text" name="" />
    <input type="checkbox" name="" /><input type="text" name="" />​
    

    you can

    $(':checkbox').change(function(){
      $(this).next().attr('disabled',!this.checked);
    })​;
    

    here is a demo

    but then I know you don't have that "very" simple structure so, read the following and get the idea from above...

    1. traversing
    2. selectors

    If you can provide the structure of your html, much better...

    0 讨论(0)
  • 2021-01-23 08:39

    A few corrections to the markup first: that hidden input needs to be inside a <td> and the header row needs a closing </tr>, then you can do this:

    ​$('#food').delegate(':checkbox', 'change', function(​​​​​​​​​​​​​​​​​) {
        $(this).closest('tr').find('input:text').attr('disabled', !this.checked);
    });
    $(':checkbox').change(); //set state initially
    

    You can see a demo here, we're using .closest() to get up to the <tr>, then finding inputs of [type=text] using .find() and :text.

    0 讨论(0)
提交回复
热议问题