jQuery Datatable,将文本框的值输出到选定行的列

时间:2017-11-21 18:29:30

标签: javascript jquery datatable

我目前有一个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代码,我想通过尝试使列等于文本框的值,然后重绘表将起作用。当您在文本框中键入新内容然后按“保存”时,控制台确实具有正确的输出。我只是想弄清楚如何把它放回到选定的行。 如果可能的话,我不想进行内联编辑。试图保持这种格式。

1 个答案:

答案 0 :(得分:0)

我不知道这是否算作答案,但您实际上并没有在保存行点击中使用data变量做任何事情。您获取数据表,不做任何更改,然后重绘它。因此,没有任何事情发生也就不足为奇了。

将此更改视为您的小提琴以添加行:

https://jsfiddle.net/o92g9goL/14/

首先,您需要将表和数据表设置为不同的数组。也可以在main函数中执行。您还需要实际添加此代码:

datatable.row.add(data).draw(false);

至于编辑,你需要确保不只是预填充它,而是实际引用该行,否则它将如何更新它?