2010-02-11 5 views
2

Это как моя структура таблицы выглядит,проверка маркировки все флажки с помощью 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); 

     } 

проблема это будет галочкой только только CheckBox, что если у меня есть 100 флажка, я хочу, чтобы проверить, отметьте все эти 100 флажка щелчка выберите все кнопка.

ответ

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; 
}); 
4

Во-первых, я не могу сказать, что вы подразумеваете под "SelectCheckBox"; вы не можете присвоить всем своим ячейкам одинаковое значение «id».

Чтобы проверить все галочки во всех Td элементов "helpBod", просто сделать это:

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

с одинаковым именем или идентификатором приведет к массиву в DOM справа. – sameer

+0

Ну да, но вы определенно не должны этого делать. Он будет путать библиотеки, такие как jQuery. Предполагается, что «id» является идентификатором *, и для двух разных объектов не имеет смысла иметь один и тот же идентификатор. Используйте значение «class», если вам нужно, чтобы несколько элементов были похожими. – Pointy

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

Update, только проверка в одном столбце:

Если предположить, что 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> 
+0

спасибо за подробности, , но если я добавлю еще один флажок в другой колонке, это будет проверено. Мне нужна только интересующая колонка. – sameer

+0

Будет ли избиратель вниз, пожалуйста, объясните? –

+0

Спасибо doug за ур ввода оценены. – sameer

1

Если я понимаю, что ты попросив самый простой способ сделать это было бы

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

Это проверяет только те, на которых у вас есть этот класс, поэтому вы не будете влиять на другие флажки, которые могут быть у вас в другом месте.