【问题标题】:jQuery DataTables: Multiple checkbox filteringjQuery DataTables:多个复选框过滤
【发布时间】:2014-04-10 08:04:51
【问题描述】:

我使用 jQuery 数据表只是为了显示一些数据,但知道,我想过滤带有多个复选框的数据。
我的表包含此标题:Host, Type, Record, Description, Free
这些是我在数据表之外的复选框:
TypeMXACNAME
免费01 所以一开始我想展示所有的数据。如果现在有人选中复选框MX,它应该只显示类型为MX 的数据。如果有人检查MXCNAME0,它应该只显示带有这些过滤器的数据。你知道我的意思吗?
我有一个插件可以做到这一点,但复选框在列下,我的复选框在数据表之外。

有什么想法吗?

【问题讨论】:

  • 在我开始之前:您是否在此使用服务器端处理?如果没有,你能准备一个plunker吗?
  • @mainguy 不,我没有使用服务器端处理。什么是笨蛋?

标签: jquery checkbox filter datatables


【解决方案1】:

你应该使用这个函数:

function filterme() {
  //build a regex filter string with an or(|) condition
  var types = $('input:checkbox[name="type"]:checked').map(function() {
    return '^' + this.value + '\$';
  }).get().join('|');
  //filter in column 0, with an regex, no smart filtering, no inputbox,not case sensitive
  otable.fnFilter(types, 0, true, false, false, false);

  //build a filter string with an or(|) condition
  var frees = $('input:checkbox[name="free"]:checked').map(function() {
    return this.value;
  }).get().join('|');
  //now filter in column 2, with no regex, no smart filtering, no inputbox,not case sensitive
  otable.fnFilter(frees, 2, false, false, false, false);
}

看看 cmets 看看它做了什么。

像这样从你的 html 调用它:

  <input onchange="filterme()" type="checkbox" name="free" value="0">0
  <input onchange="filterme()" type="checkbox" name="free" value="1">1

Plunker 是 HTML 和 JS Snippets 的测试平台,它极大地帮助其他人了解您的问题所在,并快速响应如何解决问题。它就像 html/js/css 编辑器一样工作,每次按键都会呈现您的示例,非常棒。

Click here to see how I fixed your issue with Plunker

在 Plunker 的左侧,您会找到我在此过程中使用的文件(index.html 和 script.js)

虽然这可行并且应该让您知道如何继续,但您应该考虑使用单选按钮作为免费过滤器,因为这样更有意义。

由于这是一个安静而复杂的问题,如果需要更多解释,请与我联系。

【讨论】:

  • free 有问题。我得到了包含01的记录数据,所以他也显示出来了。
  • 什么意思? 0 和 1 被两个输入覆盖。正如我所说,在这里使用两个具有 Free/Not Free 或返回 Free True/Free Not True 的单个复选框的收音机会更有意义。那是你要的吗?在当前设置中,复选标记可以同时出现在值 0 和 1 上,这当然会返回所有记录。
  • 看看这个使用单选按钮的 Plunker,更符合逻辑:plnkr.co/edit/45hOwYG13VAooKfPPAw3?p=preview
  • 嗯,现在我明白了。然后你应该只过滤相应列中的空闲。在我的示例中,使用 2 作为过滤器列,它是代码中的记录列。限制在此行中的第 4 行(从零开始计数):otable.fnFilter(frees, 4, false, false, false, false);
  • 现在看看最后一个应该与你的数据结构匹配的 plunker:plnkr.co/edit/gDQHtg7y3XyqN8InCiwI?p=preview 你开始看到 plunker 有多么有用了吗?
猜你喜欢
  • 2014-05-12
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 2017-12-07
  • 2014-09-17
  • 1970-01-01
相关资源
最近更新 更多