表过滤器不适用于 select2

问题描述 投票:0回答:1

我正在为我的项目创建表过滤器。对于输入字段,它工作得很好,但我无法正常工作 select2 过滤器,它只是不起作用..这是我的 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/

提前感谢您的帮助!

javascript jquery jquery-select2
1个回答
0
投票

工作小提琴

keyup
事件不适用于列表
select
,您只需添加
change
事件来处理选择元素,例如:

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

注意: 我在本例中使用

input
事件,因为它在处理用户输入时效率更高。

© www.soinside.com 2019 - 2024. All rights reserved.