0

如果选中一个复选框,我想检查所有其他复选框。我的复选框是一个数组。如果选中一个复选框,我希望选中该行中的所有复选框。我的代码

<tr>
  <td class="small">
    <asp:CheckBox ID="chkReportModuleName" runat="server" name="report"></asp:CheckBox>
  </td>
  <td class="particulrs"></td>
  <td class="small">
    <asp:CheckBox ID="chkReportAdd" runat="server" name="reports"></asp:CheckBox>
  </td>
  <td class="small">
    <asp:CheckBox ID="chkReportEdit" runat="server" name="reports"></asp:CheckBox>
  </td>
  <td class="small">
    <asp:CheckBox ID="chkReportDelete" runat="server" name="reports"></asp:CheckBox>
  </td>
  <td class="small">
    <asp:CheckBox ID="chkReportView" runat="server" name="reports"></asp:CheckBox>
  </td>
  <td class="small">
    <asp:CheckBox ID="chkReportPrint" runat="server" name="reports"></asp:CheckBox>
  </td>
  <td class="othr">
    <span><input type="checkbox" id="chkReportActivity1" name="reports" /></span>
  </td>
</tr>

检查名为报告的复选框。我想检查所有名称为报告的复选框。复选框 chkReportModuleName 是一个数组。单击它时,我只想检查该行中的复选框。

我试过的jquery如下:

 $('input[name="ctl00$MainContent$chkTransModuleName"]').click(function () {
   $('input[name="trans"][i]').attr("checked", this.checked);
   $('input[id="MainContent_chkTransAdd"]').attr("checked", this.checked);
   $('input[id="MainContent_chkTransEdit"][i]').attr("checked", this.checked);
   $('input[id="MainContent_chkTransDelete"][i]').attr("checked", this.checked);
   $('input[id="MainContent_chkTransView"][i]').attr("checked", this.checked);
   $('input[id="MainContent_chkTransPrint"][i]').attr("checked", this.checked);
 });

它运行,但我希望仅选中该行中的那些复选框。

有人可以帮我吗?谢谢

4

2 回答 2

1

假设名称ctl00$MainContent$chkTransModuleName是正确的

$('input[name="ctl00$MainContent$chkTransModuleName"]').click(function () {
    var chk = !!this.checked;
    $(this).closest('tr').find('.small > input[type="checkbox"]').attr('checked', chk);    
});
于 2012-04-10T11:06:55.643 回答
0

首先,给复选框CssClass以使其更易于识别:

<tr>
    <td class="small"><asp:CheckBox ID="chkReportModuleName" CssClass="reportModule" runat="server" name="report"></asp:CheckBox></td>
    <td class="particulrs"></td>
    <td class="small"><asp:CheckBox ID="chkReportAdd" CssClass="checkbox" runat="server" name="reports"></asp:CheckBox></td>
    <td class="small"><asp:CheckBox ID="chkReportEdit" CssClass="checkbox" runat="server" name="reports"></asp:CheckBox></td>
    <td class="small"><asp:CheckBox ID="chkReportDelete" CssClass="checkbox" runat="server" name="reports"></asp:CheckBox></td>
    <td class="small"><asp:CheckBox ID="chkReportView" CssClass="checkbox" runat="server" name="reports"></asp:CheckBox></td>
    <td class="small"><asp:CheckBox ID="chkReportPrint" CssClass="checkbox" runat="server" name="reports"></asp:CheckBox></td>
    <td class="othr">
        <span><input type="checkbox" id="chkReportActivity1" name="reports" /></span>
    </td>
</tr>

然后你可以使用这个jQuerycode:

$('.reportModule').click(function () {
    var $el = $(this), $parentTR = $el.closest("tr"), checked = $el.is(":checked");
    $(".checkbox", $parentTR).attr("checked", checked);
});

此代码使用最接近的tr元素作为上下文,在其中查找要切换的相关复选框。

于 2012-04-10T11:11:49.027 回答