2017-02-13 3 views
1

Я могу включить текстовые поля, когда я нажимаю на переключатель с помощью jquery. Но я не понимаю, как отключить их, если переключатель изменился.Невозможно отключить текстовые поля с помощью jquery

JSFiddle http://jsfiddle.net/2LCnC/

HTML

<table> 
    <tr class="jsRadioMasterSlaveContainer"> 
    <td> 
     <input type="radio" name="radioMultiSelectCheckbox" class="jsRadioMaster" value=""> Upto N random selection count 
    </td> 
    <td style="padding: 3px;"> 
     <input type="text" placeholder="Count" id="" style="width:80px" class="jsRadioSlave" disabled/> 
    </td> 
    </tr> 
    <tr class="jsRadioMasterSlaveContainer"> 
    <td> 
     <input type="radio" name="radioMultiSelectCheckbox" id="" value="" class="jsRadioMaster"> Fixed selection count 
    </td> 
    <td style="padding: 3px;"> 
     <input type="text" name="" placeholder="Count" id="" style="width:80px" class="jsRadioSlave" disabled/> 
    </td> 
    </tr> 
    <tr class="jsRadioMasterSlaveContainer"> 
    <td> 
     <input type="radio" name="radioMultiSelectCheckbox" id="" class="jsRadioMaster"> Fixed index selection count 
    </td> 
    <td style="padding: 3px;"> 
     <input type="text" placeholder="Count" id="" style="width:80px" class="jsRadioSlave" disabled/> 
    </td> 
    </tr> 
</table> 

Jquery

$(".jsRadioMaster").each(function() { 
    $(this).click(function() { 
    HandleMasterRadioChange($(this)); 
    }); 
}); 
function HandleMasterRadioChange(masterRadio) { 
     $(masterRadio).closest(".jsRadioMasterSlaveContainer").find(".jsRadioSlave").each(function() { 
     $(this).attr("disabled", !$(masterRadio).is(':checked')); 
     }); 
    } 

ответ

1

Вы можете использовать prop(propertyName, function) и вернуться boolen на основе радио в одном ряду

$(".jsRadioMaster").change(function() { 
    $('.jsRadioSlave').prop('disabled',function(){ 
     return !$(this).closest('tr').find('.jsRadioMaster').prop('checked') 
    }) 
}); 

DEMO

Смежные вопросы