2017-11-22 2 views
1

Ich erstelle Tabellenfilter für mein Projekt. Mit Eingabefeldern es funktioniert perfekt, aber ich kann nicht verwalten richtig select2 Filter zu arbeiten, es funktioniert einfach nicht .. Hier ist mein jQuery-Code:Tabellenfilter funktioniert nicht mit 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 
}); 

Und hier ist mein JsFiddle: https://jsfiddle.net/5202jsax/9/

Schätzen Sie für Hilfe im Voraus!

Antwort

0

Working Fiddle.

Die keyup Veranstaltung wird für die Liste nicht funktionieren select, Sie haben gerade die change Event hinzufügen auch mit den ausgewählten Elementen zu behandeln, wie:

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

HINWEIS: Ich bin mit dem input Ereignis in diesem Beispiel, da es im Umgang mit den Benutzereingaben effizienter ist.

Hoffe, das hilft.