jquery 表过滤器不适用于select2

jtoj6r0c  于 5个月前  发布在  jQuery
关注(0)|答案(1)|浏览(46)

我正在为我的项目创建表过滤器。它与输入字段完美地工作,但我不能管理正常工作select 2 filter,它只是不工作。.这里是我的jQuery代码:

$(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/
感谢您的帮助提前!

pgky5nke

pgky5nke1#

Working Fiddle

keyup事件对列表select不起作用,你只需要添加change事件来处理选择元素,比如:

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

字符串

**注意:**我在这个例子中使用input事件,因为它在处理用户输入时更有效。

相关问题