选中一个复选框检查所有复选框

时间:2012-04-09 12:58:41

标签: javascript jquery asp.net

如果选中了一个复选框,我想检查所有其他复选框。我的代码

<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>

选中名为report的复选框。我想检查名称为reports的所有复选框。

有人可以帮我这个吗? 感谢

4 个答案:

答案 0 :(得分:2)

行:

$('input[name="report"]').click(function(){
   $('input[name="reports"]').prop("checked", this.checked);
});

点击“报告”复选框后,所有“报告”复选框都将设置为与“报告”相同的状态。如果您希望它只能单向工作,例如,如果取消选中“报告”复选框,则不应取消选中其他复选框,请执行以下操作:

$('input[name="report"]').click(function(){
   if (this.checked)
       $('input[name="reports"]').prop("checked", true);
});

上面应该放在document.ready处理程序和/或所有复选框后面出现的脚本块中。

如果您使用旧版本的jQuery,则需要使用.attr()代替.prop()

简单演示(还展示了如何使用document.ready):http://jsfiddle.net/eHLcS/

答案 1 :(得分:2)

试试这个:

$('input[name="report"]').change(function() {
    $('input[name="reports"]').attr("checked", $(this).is(":checked"));
});

答案 2 :(得分:1)

使用此:

$(function(){

    // add multiple select / deselect functionality
    $("#selectall").click(function () {
          $('.case').attr('checked', this.checked);
    });
});

其中#selectall是您的“报告”复选框的ID,.case是您希望在点击#selectall时选择的所有chekbox的cssclass

对于较新版本的jquery,您也可以使用prop函数代替attr

答案 3 :(得分:0)

在所有复选框的onclick事件(姓名=='报告')中附加以下功能

function CheckAllReportCheckboxes()
{
    var elm = document.getElementsByTagName("input");
    for (i = 0; i < elm.length; i++) {
        if (elm[i].type == "checkbox" && elm[i].name == 'report') {
                elm[i].checked = 'checked';
        }
    }
}

请记住,取消选中复选框将无效。