@Html.Checkbox全选

时间:2017-07-27 13:17:30

标签: c# jquery asp.net-mvc

所以我在我的视图中有一个表格,我已经达到了select-all复选框选择/取消选择的程度。但是我似乎无法选择所有复选框。它只选择列表中的第一个复选框。

enter image description here

以下是我看来的片段。

<table class="table table-bordered">
<tr>
    <th>@Html.CheckBox("CheckAll", false, new { id = "select_all" })</th>

@for (int i = 0; i < Model.additionalCustomerInfoListView.Count; i++)
{
    <tr>                            
        <td>@Html.CheckBoxFor(model => model.additionalCustomerInfoListView[i].IsSelected, new { id = "someDivId" })</td>

这是我的jQuery

$('#select_all').click(function () {
    var c = this.checked;
    $('#someDivId').prop('checked', c)
});     

感谢我能得到的任何帮助!

2 个答案:

答案 0 :(得分:5)

将新{ id = "someDivId" }更改为new { @class= "someClass"}

然后用&#34; someClass&#34;选择所有元素。使用:

$('#select_all').click(function () {
    $('.someClass').prop('checked', this.checked)
});  

答案 1 :(得分:0)

您应该考虑另一种方式,例如取消选中子复选框,然后也应取消选择父级。

表示如果表中有10个复选框,如果未选中一个,则还应取消选择父级。

以下是逐个选择子复选框时选择父级的代码

通过孩子

if($('#myTable tr').length-1 == $(".someClass:checked").length)
{
    //Select parent
}

通过父母

$('#select_all').click(function () {
    $('.someClass').prop('checked', this.checked)
});  

由于