如果未选中复选框,则禁用按钮

时间:2017-11-29 01:35:32

标签: javascript jquery

我有一个从其中的rest调用生成的下表结构是输入复选框,在创建表之前,我想要禁用静态按钮,除非点击任何复选框

<div id="divbuttons">
  <button id="Reject" type="button">Reject</button>
  <button id="Approve" type="button">Approve</button>
</div>

<table id="GetItems" cellspacing="12">
  <tbody>
   <tr style="background-color: rgb(204, 204, 204);">
    <td style="width: 349px;"><strong>Select</strong> 
       <input name="chk" type="checkbox" value="35">
    </td>
    <td style="width: 211px;">&nbsp;</td>
    <td style="width: 396px;"><strong>Requester: </strong>Test user</td>
    <td style="width: 149.2px;"><strong>Raised Date:</strong> 29/11/2017</td>
    <td style="width: 806.8px;" colspan="3">&nbsp;</td></tr><tr>
    <td style="width: 349px;"><strong>Item Requested For:<br>:</strong>Desktops</td>
    <td style="width: 211px;"><strong>Bomb<br>&nbsp;</strong>ITSS</td>
    <td style="width: 396px;"><strong>Department:</strong><br>ITSS Infrastructure</td>
    <td style="width: 149.2px;"><strong>Job Title:</strong><br>Consultant</td>
    <td style="width: 376.8px;"><strong>Phone Number:</strong><br>032394</td>
    <td style="width: 213px;"><strong>Request Type</strong><br>:New Allocation</td>
    <td style="width: 217px;"><strong>Replacement Type:<br></strong>New Allocation</td>
   </tr>
  </tbody>
</table>

如何使用jQuery

实现这一目标

1 个答案:

答案 0 :(得分:0)

您可以使用解决方案

&#13;
&#13;
$('#GetItems tbody').html(`<tr style="background-color: rgb(204, 204, 204);">
    <td style="width: 349px;"><strong>Select</strong> 
       <input name="chk" type="checkbox" value="35">
    </td>
    <td style="width: 211px;">&nbsp;</td>
    <td style="width: 396px;"><strong>Requester: </strong>Test user</td>
    <td style="width: 149.2px;"><strong>Raised Date:</strong> 29/11/2017</td>
    <td style="width: 806.8px;" colspan="3">&nbsp;</td></tr><tr>
    <td style="width: 349px;"><strong>Item Requested For:<br>:</strong>Desktops</td>
    <td style="width: 211px;"><strong>Bomb<br>&nbsp;</strong>ITSS</td>
    <td style="width: 396px;"><strong>Department:</strong><br>ITSS Infrastructure</td>
    <td style="width: 149.2px;"><strong>Job Title:</strong><br>Consultant</td>
    <td style="width: 376.8px;"><strong>Phone Number:</strong><br>032394</td>
    <td style="width: 213px;"><strong>Request Type</strong><br>:New Allocation</td>
    <td style="width: 217px;"><strong>Replacement Type:<br></strong>New Allocation</td>
   </tr>`);
   
$('#GetItems').on('change', 'input[name=chk]', function(){
  if($(this).is(':checked')) {
    $('#Reject').removeAttr('disabled');
    $('#Approve').removeAttr('disabled');
  } else {
    $('#Reject').attr('disabled', true);
    $('#Approve').attr('disabled', true);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divbuttons">
  <button id="Reject" type="button" disabled>Reject</button>
  <button id="Approve" type="button" disabled>Approve</button>
</div>

<table id="GetItems" cellspacing="12">
  <tbody>
   
  </tbody>
</table>
&#13;
&#13;
&#13;

我考虑过table&amp; tbody是静态的&amp;行正在动态添加。

由于复选框是动态生成的,因此您需要委派更改事件。

希望此解决方案能为您提供帮助。