Как проверить все флажки в JQuery Datatable? - PullRequest
2 голосов
/ 16 января 2012

У меня есть таблица с флажками в первом столбце.Я использую плагин jQuery DataTable для отображения моей таблицы.

Я сделал 2 ссылки, чтобы установить / снять все флажки.Вот один из них, чтобы выбрать все:

<a href="" name="CheckAll" onClick="checkAll(document.email_list_form_inviter.getElementsByClassName(\'email_checkbox\'), event)" >Select all</a>

И javascript:

function checkAll(field, event) {
    event.preventDefault();
    for (i = 0; i < field.length; i++)
        field[i].checked = true ;

    return false;
}

Но набор данных включает разбиение на страницы, и моя функция выбирает только видимые флажки, а не те, что на других страницах.Как можно выбрать все флажки в моей таблице данных?

Решение:

Хорошо, я сделал это с помощью fnGetNodes, спасибо amccausl!

$("a[name='CheckAll']").click(function(event) {
        event.preventDefault();
        var nodes = datatable.fnGetNodes( );
        $('.email_checkbox', nodes).attr("checked", "checked");
    });

Ответы [ 4 ]

1 голос
/ 16 января 2012

Вы можете использовать fnGetNodes , чтобы получить все нужные вам узлы, вместо getElementsByClassName.

Вы также должны использовать событие jquery.click () вместо того, чтобы определять onClick самостоятельно

0 голосов
/ 29 января 2015

Это мое решение (DataTables1.9.4):

var nodes = $('#listContainer').DataTable().column(0).nodes();
    $(':checked', nodes).each(function (index) {
        console.log($(this).text())
    })
0 голосов
/ 04 октября 2014
$(document).ready(function() {
$(".checkall").click(function(event) {
                event.preventDefault();
                var oTable = $('#example').dataTable();
                var nNodes = oTable.fnGetNodes();
                $email_box=$('.email_checkbox',nNodes);
                if($email_box.attr("checked")=="checked"){
                  $email_box.removeAttr("checked");
                  $(".checkall").text("Check all");
                }
               else{
                 $email_box.attr("checked", "checked");
                 $(".checkall").text("Uncheck all");
             }
});
0 голосов
/ 28 декабря 2012

Извините, мой код неверен:

Динамический флажок

return '<input type="checkbox" id="email_checkbox" name="email_checkbox"  />';

Ссылка

<a href="" name="CheckAll" id="CheckAll">seleccionar todos</a>

таблица имени:

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" width="100%">

и код

$(document).ready(function() {
$("a[name='CheckAll']").click(function(event) {
                event.preventDefault();
                var nodes =  $('#example').fnGetNodes( );
                $('.email_checkbox', nodes).attr("checked", "checked");
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...