我正在为我的项目创建表过滤器。使用输入字段它完美地工作,但我无法正常工作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/
提前感谢您的帮助!
答案 0 :(得分:0)
<强> Working Fiddle 强>
keyup
事件不适用于列表select
,您只需要添加change
事件来处理选择元素,例如:
$('.filterable .filters input, select').on('input change', function(e) {
//Your logic HERE
});
注意:我在此示例中使用input
事件,因为它在处理用户输入时效率更高。
希望这有帮助。