jQuery dataTables - фильтрация строк на основе значений в скрытом поле в столбце
У меня есть таблица начальной загрузки с колонкой со структурой ниже. Таблица на самом деле привязана из базы данных с использованием AJAX
ROW1:<td>....</td><td>...</td><td><i class='fa fa-arrow'></i><input type='hidden' value='0'</td>
ROW2:<td>....</td><td>...</td><td><i class='fa fa-bar'></i><input type='hidden' value='1'</td>
ROW3:<td>....</td><td>...</td><td><i class='fa fa-user'></i><input type='hidden' value='2'</td>
.........
.........
Здесь значение скрытых полей динамически изменяется при привязке из базы данных или при добавлении каждой строки. В заголовке того же столбца есть текстовое поле, и если мы укажем значение 0, оно отфильтрует таблицу на основе значения этого скрытого поля в этом столбце. Точно так же, если я введу 2, он будет отображать только строки, основанные на 2, в качестве значения скрытого поля этой конкретной ячейки столбца...
Я не могу попробовать скрытые столбцы, так как для фильтрации уже есть много скрытых столбцов. Итак, запрос решения в этом режиме...
2 ответа
ХОРОШО. Не совсем уверен, что понимаю, что вы хотите, но здесь идет. Чтобы взять это сверху:
В заголовке того же столбца есть текстовое поле...
Как это?
<tr>
<th>col #1</th>
<th>col #2</th>
<th><input type="text" id="search"/></th>
</tr>
... и если мы укажем значение 0, оно отфильтрует таблицу на основе значения этого скрытого поля в этом столбце.
Во-первых, переопределить встроенный html
Тип фильтра, поэтому он возвращает значение скрытого поля ввода:
$.fn.dataTableExt.ofnSearch['html'] = function ( sData ) {
return $(sData).val();
}
Затем назначьте поиск dataTables для поля ввода в заголовке:
$("#search").on('keyup', function() {
table.columns(2).search($(this).val()).draw();
});
см. демонстрацию -> http://jsfiddle.net/xdhgn55q/
Нашел это сообщение год спустя, но все же, почему так важно переопределить встроенный фильтр типа html?
Мне удалось получить аналогичное решение, добавив только табличные элементы http.