2016-07-20 21 views
1

私は彼らの選択フィルタを内蔵したDataTableの列のフィルタリングを使用すると、それが私の<span class="label label-success"> Active </span>とリターンこれで混乱に私のブートストラップクラスと混同ますそれは「削除さ 『を持っていないために>フィルタリングが正しく動作するように、非アクティブ、アクティブ、削除された』などを削除しただけ返す。のDataTableは、選択フィルタ列フィルタリング

私のJavascriptの

$(document).ready(function() { 
     $('#questionnaireTable').DataTable({ 
      select: { 
       style: 'multi' 
      }, 
      initComplete: function() { 
       this.api().columns().every(function() { 
        var column = this; 
        var select = $('<select><option value=""></option></select>') 
         .appendTo($(column.footer()).empty()) 
         .on('change', function() { 
          var val = $.fn.dataTable.util.escapeRegex(
           $(this).val() 
          ); 

          column 
           .search(val ? '^'+val+'$' : '', true, false) 
           .draw(); 
         }); 

        column.data().unique().sort().each(function (d, j) { 
         select.append('<option value="'+d+'">'+d+'</option>') 
        }); 
       }); 
      } 
     }); 
}); 

とブレードエンジン(Laravel)のHTMLを返す:

    <td> 
        @if($questionnaire->deleted_at) 
         <span class="label label-danger"> Deleted </span> 
        @elseif($questionnaire->status == \App\Models\Questionnaire::STATUS_ACTIVE) 
         <span class="label label-success"> Active </span> 
        @elseif($questionnaire->status == \App\Models\Questionnaire::STATUS_INACTIVE) 
         <span class="label label-warning"> Inactive </span> 
        @else 
         <span class="label label-danger"> Invalid Status </span> 
        @endif 
       </td> 

任意のポインタが理解されるであろう!

答えて

2
column.data().unique().sort().each(function (d, j) { 
    select.append('<option value="'+d+'">'+d+'</option>') 
}); 

上記のコードでは、ループ時に、d = '<span class="label label-danger"> Deleted/Active... </span>'と思います。

あなたが助けを$(d).text()

+0

感謝を使って、オプション文字列を作る前に、スパンでテキストのみを取得することができます! –

関連する問題