数据表自动填充扩展与投入要素不工作(DataTables' Autofill extensi

2019-10-23 17:18发布

上下文

我使用的数据表与插件自动填充扩展。 基本上,它可以让你通过拉动交叉(它的右下角)向上或向下的列的单元格复制。 这在我的项目工作正常。


问题

然而,当我试着输入复制单元格内,它会清除所选的输入。 阅读文档,似乎该插件的旧版本,使投入的拷贝在细胞内,仅仅通过增加一个小的脚本 。 从当前的文档 ,通过查看write选项,我正在寻找的行为应该可以在默认情况下:

这个回调fnRead的必然结果,提供了一个方法来定制自动填充如何写一个计算的填充值给定的细胞。 默认情况下,自动填充将在输入设定的值,或者如果发现在细胞中选择元件,否则将设定的值作为HTML。

问题是,当输入的初始值,复印工作。 但是,当添加/编辑值,它复制了前一个。 它试图添加读写功能的选项,但他们从来不被称为(见小提琴)。


这里有一个jsFidle重现正是我的问题:

  1. row.1 col.1向下拖动row.2 col.1 - >作品
  2. row.1 col.1并重复步骤编辑值1 - >返回前值
  3. 在row.1 col.2输入值,并将其向下拖动 - >重置值,而不复制

看来,属性值永远不会更新。

Answer 1:

您需要使用readwrite回调来检索和设置的值<input>元素。

此外,它似乎自动填充默认通过增量值。 我不得不添加step回调可以覆盖这种行为。

new $.fn.dataTable.AutoFill(table, {
    "columnDefs": [{
        "read": function (cell) {
            return $('input', cell).val();
        },
        "write": function (cell, val) {
            return $('input', cell).val(val);
        },
        "step": function ( cell, read, last, i, x, y ) {
           return last === undefined ? read : last;
        },        
        "targets": [0,1,2] // Use "_all" to target all columns
    }]
});

请参见本的jsfiddle代码和演示。



文章来源: DataTables' Autofill extension with input elements not working