我目前有一个jQuery Datatable,在点击一行时,来自该行的数据被输出到文本框和选择框。无论输入到文本框中的是什么,我都会尝试制作它,按下saverow按钮后将保存/输入到选定的行中。
这是我的JSFiddle:JSFiddle
使用Javascript:
var table = $('#example').DataTable();
(function () {
var table = document.querySelector('#example');
var name = document.querySelector('#nameinput');
var format = document.querySelector('#formatinput');
var address = document.querySelector('#addressinput');
var report = document.querySelector('#reportinput');
var alarm = document.querySelector('#alarminput');
table.addEventListener('click', onTableClick);
function onTableClick (e) {
var tr = e.target.parentElement;
var data = [];
for (var td of tr.children) {
data.push(td.innerHTML);
}
name.value = data[0];
address.value = data[1];
format.value = data[2];
report.value = data[3];
alarm.value = data[4];
console.log(alarm.value);
}
$("#saverow").click(function() {
var table1 = $('#data-table').DataTable();
var data = [];
data[0] = name.value;
data[4] = alarm.value;
console.log(name.value);
console.log(alarm.value);
table1.draw(true);
});
})();`
使用saverow代码,我想通过尝试使列等于文本框的值,然后重绘表将起作用。当您在文本框中键入新内容然后按“保存”时,控制台确实具有正确的输出。我只是想弄清楚如何把它放回到选定的行。 如果可能的话,我不想进行内联编辑。试图保持这种格式。
答案 0 :(得分:0)
我不知道这是否算作答案,但您实际上并没有在保存行点击中使用data
变量做任何事情。您获取数据表,不做任何更改,然后重绘它。因此,没有任何事情发生也就不足为奇了。
将此更改视为您的小提琴以添加行:
https://jsfiddle.net/o92g9goL/14/
首先,您需要将表和数据表设置为不同的数组。也可以在main函数中执行。您还需要实际添加此代码:
datatable.row.add(data).draw(false);
至于编辑,你需要确保不只是预填充它,而是实际引用该行,否则它将如何更新它?