覆盖数据表默认搜索功能

时间:2016-07-09 08:25:06

标签: javascript datatables

我在我的网站上使用数据表(https://datatables.net),并希望使用levenstein方法覆盖默认搜索功能。

我已经有了levenstein方法,但是我在抓取搜索框的值以测试它时遇到了问题。 Datatables添加的搜索框没有id或名称或其他任何我可以轻松用来定位该元素的内容。

我可以想出两种方法来解决这个问题:

  1. 弄清楚如何获取搜索框值(用户输入的值)
  2. 弄清楚如何在不关闭搜索的情况下隐藏搜索框,并添加我自己的自定义输入。
  3. 这就是我所拥有的。

    $.fn.dataTable.ext.search.push(
        function( settings, data, dataIndex ) {
            var search = /* this should be the search box value */;
            var title = data[1];
    
            return ( title.toLowerCase().levenstein(search.toLowerCase()) < title.length ) ? true : false;
        }
    );
    

    您能否帮助我解决上面列出的选项之一。

    谢谢。

1 个答案:

答案 0 :(得分:1)

  

没有ID或名称或其他任何内容

嗯,是的确有。这对我有用:

_filter

只需转到搜索框并进行检查(如果您不知道如何在Chrome中执行此操作,只需右键单击任何元素并选择Inspect),您就可以看到它如何为您自己工作。 DataTables将一个id(你的表名加上preventDefault加到)包装输入框的div,它是div中唯一的输入框。所以这个选择器有效。你也想做一个{{1}},这样在按键后就不会运行DataTables搜索。