javascript - jQuery DataTables 复选框扩展无法在 IE 浏览器中正确检索所选数据

标签 javascript checkbox datatables

我使用 jQuery 数据表复选框扩展来为我的表提供多选功能。单击任何行的复选框时,我会检索所有选定行的第一个单元格的数据发送到服务器。

该代码在 Chrome 浏览器中有效,但在 IE 浏览器中无效。

$(document).ready(function () {      
    var table = $('#tbl_inv').DataTable({
        "paging": false,
        //"ordering": false,
        "info": false,
        "searching": false,
        'columnDefs': [
            {
                'targets': 0,
                'checkboxes': {
                    'selectRow': true
                }
            }
        ],
        'select': {
            'style': 'multi'
        },
        'order': [[1, 'asc']]
    });

    $('#tbl_inv input[type="checkbox"]').on('change', function () {
        $.ajax({
            url: '/Invoices/Pickup?handler=CalcTotaltoPay',
            data: {
                invIds: $('#tbl_inv').DataTable().column(0).checkboxes.selected().join(),
                clientId:1234
            }
        })
            .done(function (result) {
                freshResult(result);
            });

        // Iterate over all selected checkboxes
        //$.each(table.column(0).checkboxes.selected(), function (index, rowId) {
        //    console.log(index + '---' + rowId)
        //    console.log(table.cell(index, 5).data())
        //});
    });
});

当我使用IE浏览器时,.column(0).checkboxes.selected()返回一个列表,该列表不包括当前单击的复选框状态变化。意思是,当选中复选框时,.column(0).checkboxes.selected() 返回一个不包含当前复选框数据的列表。当复选框未选中时,.column(0).checkboxes.selected() 返回仍包含此复选框数据的列表。

最佳答案

这是由于 jQuery DataTables Checkboxes 插件的竞争情况造成的。它在内部处理 change 事件以更新所选复选框的列表。当您自己处理 change 事件时,显然 IE 插件仍然没有意识到更改。

尝试使用columns.checkboxes.selectCallback复选框状态更改时处理事件的选项。

'columnDefs': [
   {
      'targets': 0,
      'checkboxes': {
         'selectRow': true,
         'selectCallback': function(nodes, selected){
            // Handle checkbox state change event
         }
      }
   }
],

关于javascript - jQuery DataTables 复选框扩展无法在 IE 浏览器中正确检索所选数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57672986/

相关文章:

javascript - 对模式的变体进行正则表达式的最简单方法是什么?

javascript - 使用 CSS/JS 渐变淡出一个 div

javascript - 如何创建适用于事件监听器标记的元素 Id 的函数?

javascript - 分机 JS 4 : Override format of data sent to the server

数据表添加了 Font Awesome 图标而不是列名

javascript - 在 JavaScript 中搜索 JSON 数组中的数字

javascript - 启用/禁用带有复选框的文本区域

Java Swing 从复选框中删除 LAF 样式

jquery - jQuery 数据表中带有超链接的图像未显示

javascript - 如何删除行并在文本区域中显示删除的行(标题除外)?