2017-11-22 22 views
1

私のプロジェクトのテーブルフィルタを作成しています。入力は、それが完璧に動作しますが、私はきちんとSELECT2フィルタを動作するように管理することはできませんフィールドが、それだけでここ..動作しません、私のjQueryのコードは次のとおりです。テーブルフィルタがselect2で動作しません

$(document).ready(function() { 
    $('.filterable .filters input, select').keyup(function(e) { 
    var code = e.keyCode || e.which; 
    if (code == '9') return; 
    var $input = $(this), 
     inputContent = $input.val().toLowerCase(), 
     $panel = $input.parents('.filterable'), 
     column = $panel.find('.filters th').index($input.parents('th')), 
     $table = $panel.find('.table'), 
     $rows = $table.find('tbody tr'); 

    var $filteredRows = $rows.filter(function() { 
     var value = $(this).find('td').eq(column).text().toLowerCase(); 
     return value.indexOf(inputContent) === -1; 
    }); 

    $table.find('tbody .no-result').remove(); 
    $rows.show(); 
    $filteredRows.hide(); 

    if ($filteredRows.length === $rows.length) { 
     $table.find('tbody').prepend($('<tr class="no-result text-center"><td colspan="' + $table.find('.filters th').length + '">Deja, bet rezultatų nepavyko rasti</td></tr>')); 
    } 
    }); 
}); 

$("#street").select2({ 
    minimumInputLength: 3 
}); 

そして、ここでは私のJsFiddleです: https://jsfiddle.net/5202jsax/9/

事前にお礼申し上げます。

答えて

0

Working Fiddle

keyupイベントがリストselectのために動作しません、あなただけのように、選択要素に対処するためにもchangeイベントを追加しました:

$('.filterable .filters input, select').on('input change', function(e) { 
    //Your logic HERE 
}); 

注:私が使用していますこの例ではinputというイベントが発生します。これは、ユーザーの入力を処理すると効率的です。

これが役に立ちます。

関連する問題