【问题标题】:DataTable search filter is always returning "No matching records found"DataTable 搜索过滤器始终返回“未找到匹配记录”
【发布时间】:2020-02-09 14:23:25
【问题描述】:

我想按关键字过滤结果记录。但是当我输入关键字时,数据表总是显示“未找到匹配记录”消息。

它应该显示用户键入的相关记录匹配关键字。

现场演示: http://live.datatables.net/havusebu/2/watch

不确定我的 HTML 标记是否遗漏或搜索过滤器无法正常工作的问题是什么?

更新: 在我的 HTML 中,我使用了 data-* 属性来过滤导致问题的记录。但是为什么 data-search 属性会导致这个问题呢?通过删除以下数据搜索属性搜索过滤器正在工作。但是当data-search= 出现在 HTML 中时,它就不起作用了。如何使其与data-search 属性一起使用?

<td data-search="blog">

【问题讨论】:

  • 你的 html 演示在哪里?
  • 我可以从您的演示中看到,DataTable 的默认过滤不起作用,因为您的表不是&lt;table&gt;&lt;/table&gt;,而是&lt;div&gt; 的列表,这不是它期望的 html 结构。关于您的 filterByType 函数,您声明它但从不调用它。请尝试查看您的代码,并使用按钮&lt;&gt; 将其作为 sn-p 包含在您的问题中,这样 SO 上的人会更容易为您提供帮助
  • @scaramouche 它是一个表格而不是 div 列表。你能再检查一遍代码吗?在脚本标签中的正文末尾调用Filterbytype
  • 它是一个表,但我看到每个&lt;td&gt; 都包含&lt;div&gt;s 的嵌套结构,这可能会导致问题,而且我仍然看不到filterByType 在任何地方被调用,它在脚本末尾被声明但从未被调用/执行,在演示中&lt;tbdoy&gt; 和第一个&lt;tr&gt; 之间也有一千行

标签: jquery html datatables


【解决方案1】:

经过大量的挖掘终于找到了解决方案(:

我刚刚添加了一个额外的隐藏 td &lt;td style="display:none;" data-search="{{ hit['_source']['filter'] }}"&gt;&lt;/td&gt; 并从下面 td

中删除了 data-search
<td data-search="{{ hit['_source']['filter'] }}">

现在过滤和搜索都可以工作了。

现场演示http://live.datatables.net/jitaguce/1/watch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2017-06-29
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多