单击按钮,使用jquery选中标记所有复选框

时间:2010-02-11 18:41:45

标签: jquery

这是我的表结构的样子,

 <table>
    <tbody>   
    <tr>
    <td id="**SelectCheckBox**" class="helpBod">
    <input id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl01_CheckBox0" type="checkbox"  name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl01$CheckBox0"/>
    </td>
    <td>
    </td>
    </tr>
    <tr>
    <td id="**SelectCheckBox**" class="helpBod">
    <input id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl02_CheckBox1" type="checkbox"  name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl02$CheckBox1"/>
    </td>
   <td>
    </td>
    </tr>
    <tr>
    </tbody>
</table>

我有一个按钮SelectAll即将调用jquery函数来检查所有复选框

功能看这个

function jqCheckAll() {
        $("td#" + 'SelectCheckBox' + 'input:checkbox').attr('checked', true);

      }

问题是这只会勾选标记只有复选框如果我有100个复选框,我想勾选所有这100个复选框点击全选按钮。

4 个答案:

答案 0 :(得分:5)

@sameer,您要做的是为要检查的所有复选框添加一个类。 在这里,我在要检查的复选框中添加了一个“checkall”类。

<input type="button" name="checkit" id="checkit" value="Check All">

 <table>
    <tbody>   
    <tr>
    <td>
    <input type="checkbox" class="checkall" name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl01$CheckBox0" id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl01_CheckBox0" />
    </td>
    <td>
    <input type="checkbox" name="chk1" id="chk1" />
    </td>
    </tr>
    <tr>
    <td>
    <input type="checkbox" class="checkall" name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl02$CheckBox1" id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl02_CheckBox1" />
    </td>
    <td>
   <input type="checkbox" name="chk2" id="chk2" />
    </td>
    </tr>
    <tr>
    </tbody>
</table>

jQuery很简单。

$('#checkit').click(function() {
    $('input:checkbox.checkall').attr('checked','checked');
    return false;
});

答案 1 :(得分:4)

首先,我无法用“ SelectCheckBox ”来表达你的意思;你不能给你所有的复选框提供相同的“id”值。

要检查所有“helpBod”td元素中的所有复选框,只需执行以下操作:

$('td.helpBod input:checkbox').attr('checked', true);

答案 2 :(得分:4)

function jqCheckAll() {
    $("input:checkbox").attr('checked','checked');
}

更新,仅检入一列:

假设您的select_all按钮与复选框位于同一td内,请执行以下操作:

$('td.helpBod .select_all').click(function(e){
    e.preventDefault();
    $(this).closest('td.helpBod').find(':checkbox').attr('checked', 'checked');
});

同样,假设您的HTML看起来像这样(select_all不必是按钮):

<td class="helpBod" ... >
  <button class="select_all">Select All</button>
  <input type="checkbox" ... />
  <input type="checkbox" ... />
  <input type="checkbox" ... />
  <input type="checkbox" ... />
</td>

答案 3 :(得分:1)

如果我明白你要问的最简单的方法就是

$('.helpBod input:checkbox').attr('checked','checked');

这只会检查你上课的那些,所以你不会影响其他地方的其他复选框。