我正在使用带有自动填充扩展的Datatables插件,其中包含输入元素,如下所示: DataTables' Autofill extension with input elements not working。 这很好用。但是,我无法禁用特定列的自动填充。当我使用“enable”:false选项,并将其设置为特定列时,回调将停止工作。有没有人知道是否有办法禁用自动填充的某些列,同时仍然允许回调正常运行?以下禁用cols 1-4,但是read / write / step函数不再复制已编辑的输入值:
new $.fn.dataTable.AutoFill(table, {
"columnDefs": [{
"targets": [5, 6, 7, 8, 9],
"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;
},
"enable": false, "targets": [1,2,3,4] //omitting this leaves all columns enabled.
}]
});
答案 0 :(得分:1)
您编写它的方式是,您在同一对象中定义了targets
属性两次。您需要做的是给columnDefs
另一个指向其他目标的对象。像这样:
new $.fn.dataTable.AutoFill(table, {
columnDefs: [
{
targets: [5, 6, 7, 8, 9],
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: [1,2,3,4],
enable: false
}
]
});