tabledata从复选框中获取id值

时间:2017-12-19 18:58:22

标签: jquery datatable

我正在尝试使用Datatable显示数据,每当我尝试从复选框中获取id值时,我会undefined

数据表代码

   $(function () {
        $('#reviews_data').DataTable({
            processing: true,
            serverSide: true,
            ajax: url,
            columns: [
                {
                    data: 'id', render: function (id) {
                    return '<input type="checkbox" class="icheckbox_minimal" data-id="'+id+'"> ';
                }
                },
                {data: 'status', render: function (status,data,rowData) {
                    return  ' <div class="checkbox">\n' +
                        '<input id="exampleCheckboxSwitch" type="checkbox" data-id="'+rowData.id+'">\n' +
                        '<label for="exampleCheckboxSwitch"></label>\n' +
                        '</div>';
                }},
                {
                    data: 'status', render: function (data, data1, row, meta) {
                    return data + ' <br>' + row.created_at;
                }, "bUseRendered": false
                },
                {data: 'created_at', name: 'created_at'},
            ]
        });
    });

这个问题

{data: 'status', render: function (status,data,rowData) {
                    return  ' <div class="checkbox">\n' +
                        '<input id="exampleCheckboxSwitch" type="checkbox" data-id="'+rowData.id+'">\n' +
                        '<label for="exampleCheckboxSwitch"></label>\n' +
                        '</div>';
                }},

正如您在代码中看到的那样,我正试图从

获取ID
data-id="'+rowData.id+'"

使用此Jquery代码

   $(document).change('.checkbox',function () {
        var id = $(this).data('id');

        console.log(id);

    });

我尝试使用value而不是data-id,但确实可以使用

如何解决?

1 个答案:

答案 0 :(得分:1)

这里有一个根本性的错误。你不能使用这样的事件委托。

$(document).change('.checkbox',function () {
    var id = $(this).data('id');
    console.log(id);
});

尝试这种方式:

$(document).on('change', '.checkbox', function () {
  var id = $(this).data('id');
  console.log(id);
});