2016-06-12 5 views
1

データを表示するためにブートストラップDataTableを使用しました。同時に私はそのdataTableの列としてHTMLチェックボックスを持っています。選択されたチェックボックスの値を取得するための送信ボタンがあります。私は、検索中にチェックボックスを選択している間、次の問題をフェッチしています。検索中にブートストラップdataTableの以前に選択された行を取得する方法

enter image description here

私は、すべてのチェックボックスを選択して、私はすべての値を得た保存ボタンをクリックしたとき。それは私の期待通りに機能します。私は保存を押して私もちょうど2つの値を得たとき

しかし、予期しないoccures私は内蔵のブートストラップdataTable.Hereの検索ボックスを介して検索する。この場合

enter image description here

見取り図でありますそれ以外の値は選択されたままです。ここで

を検索取得の保存ボタンの私のjqueryのコードである一方、は、どのように私は、チェックボックスが私を助けてください

$("#btnSave").click(function() { 
      var checkboxes = document.getElementsByName('foo'); 
      var vals = ""; 
      for (var i = 0, n = checkboxes.length; i < n; i++) { 
       if (checkboxes[i].checked) { 
        vals += "," + checkboxes[i].value; 
       } 
      } 
.... 
//Other stuff 
.... 
} 

に価値を選択したすべての値を取得することができます。

+0

ノンスタイルよりも、ブートストラップ他とは何かを持っています。 DataTablesプラグイン内で作業する必要がありますapi – charlietfl

+0

あなたのコードを直接操作できるようにフィドルを作成できますか? –

答えて

0

私はのdataTableを検索した時、私は私の仕事は、この

var table = $('#tblReportList').dataTable(); 

のように行ってしまった私は、検索条件に一致するだけで、選択した値を得ていました。しかし以前に選択された値は消えてしまった。検索の選択された値を取得するために、今私は、次のコードを使用し、以前に選択した値...

table.$('input[type="checkbox"]').each(function() { 
    if (!$.contains(document, this)) { 
     if (this.checked) { 
     previousVal = previousVal + ',' + this.value; 
     } 
    } 
}); 

を取得するために私が前に掲示前のコードを使用していました。そして、それは

var checkboxes = document.getElementsByName('foo'); 
var vals = ""; 
for (var i = 0, n = checkboxes.length; i < n; i++) { 
    if (checkboxes[i].checked) { 
     vals += "," + checkboxes[i].value; 
    } 
} 

だったので、選択されたすべてのチェックボックスの値は、このの

var allValues=previousVal+vals; 
1

検索を実行するときは、指定された条件を満たす行のみをチェックします。だからあなたの検索ロジックは、以前、彼らが与えられた基準を満たしていないので、それは、それらのすべてを示すことはありません値を選択した場合でも、この

if(searchCriteria==true) 
{ 
showValue 
} 

のように動作します。この場合、「保存」をクリックすると、Javaスクリプトに従って、指定された基準を満たしているデータテーブル内の行のみが使用されます。

これまでどおり、選択したすべての値を取り込む必要があります。試したり、選択した値を何らかの種類のListまたはSetに入れたり、リストオブジェクトをセッションに入れたりする方法があります。したがって、保存をクリックするたびに、セッションからリストを取得することができます。しかし、毎回、選択した値を取得する必要がないかぎり、なぜそれをやりたいのか分かりません。

関連する問題