DataTable добавляет новые строки с циклом for - PullRequest
0 голосов
/ 08 января 2019

Привет всем

У меня есть вопрос о DataTable и его API о добавлении новой строки. Я использую DataTable с jQuery с ES5 (да, мне нужна эта комбинация).

У меня есть кнопка с функцией, которую я назвал addNewRow (да, это очевидно). Если я нажимаю на эту кнопку, отображается модальное окно с вводом, где я могу поместить некоторые данные, такие как имя, зарплата и т. Д., И внедрить их в свой DataTable, но есть ли какой-нибудь возможный способ сделать его более динамичным? Потому что каждый раз, когда я хочу создать новый столбец и добавить новый ввод в модали HTML, мне нужно добавить новый строчный код в мой js-файл в row.add ().

Вот пример:


    $buttonWrapper.on('click', '.addButton', function (){

    $table = $('table').DataTable();

    $table.row.add([

    $modal.find('input').eq(0).val(),
    $modal.find('input').eq(1).val(),
    $modal.find('input').eq(2).val()

    ]).draw();

    });

Я хочу иметь что-то с таким циклом:


    $buttonWrapper.on('click', '.addButton', function (){

    $table = $('table').DataTable();
    $theadTr = $('table thead tr');

      for(var i = 0; i < $theadTr.length; i++){

       $table.row.add([

       $modal.find('input').eq(i).val()

      ]).draw();
     }

    });

Я знаю, что это будет добавляться каждый раз, когда row.add (), потому что это зависит от длины. Я попытался также реализовать в row.add () функцию в качестве метода, но он не работает (вероятно, не существует чего-то подобного в бесплатной версии). Я также попытался добавить .rows (), но это тоже не работает. Спасибо за любой совет.

1 Ответ

0 голосов
/ 08 января 2019

Надеюсь, что это поможет.

$buttonWrapper.on('click', '.addButton', function (){
    var newRow = [];
    $table = $('table').DataTable();
    $theadTr = $('table thead tr');
    for(var i = 0; i < $theadTr.length; i++){
       newRow.push($modal.find('input').eq(i).val());
   }
   $table.row.add(newRow).draw();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...