无法使用jquery禁用文本框

时间:2017-02-13 13:06:53

标签: javascript jquery radio-button

我可以在使用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 个答案:

答案 0 :(得分:1)

您可以使用prop(propertyName, function)并根据同一行中的广播返回boolen

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

DEMO