javascript - 覆盖数据表默认搜索功能

标签 javascript datatables

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

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

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

  1. 弄清楚如何获取搜索框值(用户输入的值)
  2. 弄清楚如何隐藏搜索框而不完全关闭搜索,并添加我自己的自定义输入。

这是我所拥有的。

$.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;
    }
);

您能帮我解决上面列出的任一选项吗?

谢谢。

最佳答案

doesn't have an id or name or anything else

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

$('#myTable_filter input').on('keypress', function(e) {
    e.preventDefault();
    alert(e.which);
});

只需转到搜索框并检查它(如果您不知道如何在 Chrome 中执行此操作,只需右键单击任何元素并选择“检查”),您就可以亲自了解这是如何工作的。 DataTables 将 id(附加了 _filter 的表名称)应用到包裹输入框的 div,并且它是 div 中唯一的输入框。所以这个选择器有效。您还需要执行 preventDefault,以便在击键后不会运行 DataTables 搜索。

关于javascript - 覆盖数据表默认搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38279898/

相关文章:

javascript - OpenLayers 3 - 图层树中的不透明度 slider 不起作用

javascript - jquery 数据表破坏页面上的链接

javascript - 尝试在产品中构建 ReactJS 应用程序 - 模块构建失败 : SyntaxError: Unexpected token

javascript - 从右侧滑入 div

jquery - 使用jEditable编辑下拉列表时出现错误 "validator is undefined"

jquery - 如何检查第二页上的 iCheck

ajax - 刷新 jQuery 数据表

c# - 使用 jquery DataTable 的 fnServerParams 和 aoData 向服务器发送数据在 MVC4 中不起作用

javascript - express 4 router with express.Router(),如何获取全局数据库连接?

javascript - 如果花费的时间太长,NodeJS 函数会超时吗?