2017-11-21 55 views
1

現在、jQuery Datatableがあります。これは、クリックするとその行のデータがテキストボックスと選択ボックスに出力されます。テキストボックスに入力されているものがあれば、saverowボタンを押して選択した行に保存/入力されるようにしようとしています。 JSFiddlejQuery Datatable、選択した行の列にテキストボックスの値を出力

Javascriptを::

はここに私のJSFiddleだsaverowコード付き

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); 
     }); 


})();` 

、私はその後、テキストボックスの値に列が等しいにしようとして表が働くだろう再描画で思いました。テキストボックスに何か新しいものを入力し、保存を押すと、コンソールに正しい出力が得られます。私はちょうど選択された行に戻す方法を見つけることができません。 可能であればインライン編集をしたくありません。それをこの形式で保つことを試みている。

答えて

0

答えとしてカウントするかどうか分かりませんが、保存行のクリックの変数dataで実際には何もしていません。あなたは、データテーブルを取って、それを変更するために何もしないで、それを再描画します。それで、何も起こっていないのは驚くことではありません。

追加行を取得するためにあなたのフィドルにこの変更を参照してください:

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

を主に、あなたは別の配列にテーブルやデータテーブルを設定する必要があります。また、メイン関数の内部で実行します。また、あなたが実際にこのコードを追加する必要があります。編集用として

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

、あなたがそうでなければ、どのようにでしょう、あなたはそれを事前設定するが、その行への実際の参照を作成しないことを確認する必要がありますそれを更新するために知っている?

+0

テーブルとデータテーブルを異なる配列に設定するにはどうすればよいですか?最終的に、テーブルにはデータベースからのデータが入力されます。 –

+0

そして、どのように私は行を参照してください、質問申し訳ありません、私はコーディングに新しいです –

+0

@ J.Doe43このリンク、特に例のセクションを確認してください:https://datatables.net/reference/api/row ).data() - おそらく、datatables.netのドキュメントを調べるだけで、多くのことを知ることができます。私が気付いたのは、そのリンクの例に示されているように、テーブル全体にクリックイベントを置いていたときでした。その行の上に置くといいでしょう。 –

関連する問題