我正在使用dataTables扩展名为AutoFill的插件。它基本上允许您通过向上或向下拉动十字架(它的右下角)来复制单元格。这在我的项目中工作正常。
但是,当我尝试复制单元格内的输入时,它会清除所选输入。阅读文档,似乎旧版本的插件可以复制单元格内的输入,只需添加一个小script即可。从current doc开始,通过查看write
选项,默认情况下应该可以查找我正在寻找的行为:
这个回调是fnRead的必然结果,提供了一种方法 自定义自动填充如何将计算的填充值写入给定单元格。 默认情况下,自动填充将在输入或选择元素中设置值 在单元格中找到,否则将其设置为HTML。
问题是,当输入具有初始值时,复制起作用。但是在添加/编辑值时,它会复制前一个值。它试图添加读写函数选项,但从不调用它们(参见小提琴)。
这是jsFidle正好再现我的问题:
似乎值属性永远不会更新。
答案 0 :(得分:2)
您需要使用read
和write
回调来检索和设置<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
}]
});
请参阅this JSFiddle以获取代码和演示。