table.column(0).checkboxes.selected() 返回数据表的所有行

问题描述 投票:0回答:3

我是数据表新手,并且已经在数据表的每一行中实现了复选框。为此,我已遵循此示例

我只想返回选定行的数据,但它返回表单提交操作上的所有数据。

这是截图

enter image description here

在上面的屏幕截图中,我只选择了第二行和第三行,但 table.column(0).checkboxes.selected() 返回所有行。

Javascript代码

  var paramedics;
    table;
    var i = 0;

    $(document).ready(function () {
       table = $("#example").DataTable({
            "ajax": {
                "url": "/Home/GetCaseAllocations",
                "type": "GET",
                "datatype": "json",
             },
             "select": {
                "style": "multi"
            },
            "order": [[1, "asc"]],
            "columns": [
                {
                    "data": null,
                    'targets': 0,
                    'checkboxes': {                        
                        'selectRow': true
                    }
                },
                { "data": "patientId" },
                { "data": "name" },
                { "data": "age" },
                { "data": "zipCode" },
                { "data": "status" },
                { "data": "currentAllocation" },
                {
                    "data": "paramedicsAvailable", width: "200px",
                    render: function (data, type, row) {
                        var $select = $("<select></select>",
                            {
                                id: "allocation" + i
                            });
                        $.each(data, function (k, v) {
                            var $option = $("<option></option>",
                                {
                                    text: v,
                                    value: k
                                });
                            if (row.owner === v) {
                                $option.attr("selected", "selected")
                            }
                            $select.append($option);
                        });
                        return $select.prop("outerHTML");
                        i++;
                    }
                },
            ],
         });

        $("#frm-example").on('submit', function (e) {

            var form = this;

            var rows_selected = table.column(0).checkboxes.selected();

            // Iterate over all selected checkboxes
            $.each(rows_selected, function (index, rowId) {
                // Create a hidden element

                console.log(table.row(index));

                $(form).append(
                    $('<input>')
                        .attr('type', 'hidden')
                        .attr('name', 'id[]')
                        .val(rowId)
                );
            });
        });
    });
jquery datatables jquery-datatables-checkboxes
3个回答
2
投票

jQuery DataTables Checkboxes 插件当前的限制之一是包含复选框的列必须具有唯一的数据。

使用

columns.data
选项在包含唯一数据的响应中定义数据属性。例如:

"columns": [
    {
        "data": "patientId",
        'targets': 0,
        'checkboxes': {                        
            'selectRow': true
        }
    },
    // ... skipped ...
],

1
投票

检查以下内容

// Get the selected
var row = $("#example").column(0).checkboxes.selected();
// Create variable for the ids array
var selected_items = [];
// Loop through to get the selected id
$.each(row, function(index, rowId){
   //this add selected ID as object into array
   selected_items.push({id:rowId});
});


0
投票

我使用此代码对表单和数据表进行了多次检查,但使用最新版本的数据表,它不再起作用,我不知道如何使其起作用。 我需要的是选择几条记录并发布这些记录的 id,以对所有这些记录应用相同的修改。 非常感谢你

© www.soinside.com 2019 - 2024. All rights reserved.