jQuery dataTables - 根据列中隐藏字段中的值过滤行

时间:2014-12-03 15:51:52

标签: jquery 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 个答案:

答案 0 :(得分: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();
}); 

参见演示 - &gt;的 http://jsfiddle.net/xdhgn55q/

答案 1 :(得分:0)

迟到一年发现此消息,但是,为什么重新定义内置的html类型过滤器很重要?

我设法得到一个类似的解决方案,只添加了http表格元素。