JQuery 数据表在输入中搜索并选择

2023-11-24

将 Jquery Datatables 与输入和选择一起使用,如下所示:http://datatables.net/examples/api/form.html或者,如果我使用自定义列呈现处理程序来生成输入并选择如何使全局表搜索工作?

如果您查看该示例,您会注意到搜索中仅包含第一列(只读列),我该怎么做才能将其他列包含在搜索中?

如果您查看我的问题中的链接中的示例并在搜索中输入“Tokyo”,则会返回所有行。这是因为“东京”是所有下拉菜单中的一个选项。我只想显示选择东京的行。如果您输入“33”,即使第一行第一列的值为“33”,您也看不到任何行。

我似乎找不到任何有关如何定义数据表中特定单元格的搜索值的文档。


它没有很好的记录。在(子)版本之间,它的工作方式似乎有所不同,或者根本不起作用。我认为 dataTables 旨在自动检测 HTML 列,但由于某种原因,大多数时候它不会。最安全的方法是创建您自己的搜索过滤器:

$.fn.dataTableExt.ofnSearch['html-input'] = function(value) {
    return $(value).val();
};

这将返回33 on <input>的值为 33,并且Tokyo on <select>是选择东京的地方。然后定义所需的列类型html-input ;

var table = $("#example").DataTable({
    columnDefs: [
       { "type": "html-input", "targets": [1, 2, 3] }
    ] 
});

查看基于的演示http://datatables.net/examples/api/form.html -> http://jsfiddle.net/a3o3yqkw/


关于实时数据:问题是,仅调用基于类型的过滤器once。然后 dataTables 缓存返回的值,因此不需要一遍又一遍地“计算”所有值。幸运的是,数据表1.10.x有一个内置函数cells, rows and pages called invalidate强制 dataTables 重置所选项目的缓存。

然而,当处理<input>还有一个问题,编辑值不是改变value属性本身。所以即使你打电话invalidate(),您最终仍然会过滤旧的“硬编码”值。

但我已经找到了解决方案。强制<input>'s value要更改的属性<input>的当前值(新值)和then call invalidate :

$("#example td input").on('change', function() {
  var $td = $(this).closest('td');
  $td.find('input').attr('value', this.value);
  table.cell($td).invalidate();
});

对于文本区域使用text()反而 :

$("#example td textarea").on('change', function() {
  var $td = $(this).closest('td');
  $td.find('textarea').text(this.value);
  table.cell($td).invalidate(); 
});

处理事情时也是如此<select>的。您将需要更新selected相关属性<option>的然后invalidate()细胞也是如此:

$("#example td select").on('change', function() {
  var $td = $(this).closest('td');
  var value = this.value;
  $td.find('option').each(function(i, o) {
    $(o).removeAttr('selected');
    if ($(o).val() == value) $(o).attr('selected', true);
  })
  table.cell($td).invalidate();
}); 

叉形小提琴 ->http://jsfiddle.net/s2gbafuz/尝试更改输入和/或下拉菜单的内容,然后搜索新值...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery 数据表在输入中搜索并选择 的相关文章

随机推荐

  • 内联变量如何工作?

    在 2016 年奥卢 ISO C 标准会议上 一项名为内联变量被标准委员会投票纳入C 17 通俗地说 什么是内联变量 它们如何工作以及它们有什么用 内联变量应该如何声明 定义和使用 提案第一句话 The inline说明符可以应用于变量以及
  • 在 docker 的构建阶段使用 github 私有仓库部署密钥进行 npm 安装

    我的用例是 我有多个使用相同中间件的 Express 微服务 我想为每个中间件以 npm 模块的格式创建不同的存储库 每个存储库都是私有存储库 并且可以附加部署密钥 可以是不同的密钥或相同的密钥 所有这些在本地都可以正常工作 但是 当我尝试
  • Typo3 V6:如何创建内容元素容器? (不带电视)

    对于一个项目 我使用 Typo3 v6 0 我正在寻找创建嵌套内容元素或内容元素容器 我希望能够创建内联两列布局 而不需要使用特定的模板 我想做这个without使用Templavoila 我尝试过的扩展是gridelements kb n
  • 如何在 Win32 桌面应用程序中使用自定义 WinRT 库?

    我的基于 Win32 的桌面应用程序中有一个 WinRT 类 C CX 引用类 它访问 WinRT API 并且工作得很好 我用了本指南让它发挥作用 现在我试图将此类放入桌面应用程序可以使用的库中 我在这方面遇到了一些麻烦 这是我在 Vis
  • 如何使用 ctypes.util.find_library 在 AWS lambda (python) 中导入 .so 库?

    我正在尝试什么 我在 Lambda 上使用的 python 包 OCRMYPDF 需要 leptonica 库libpt so 5 在隔离导入代码时 我发现问题在于find library lept 打印结果返回 None from cty
  • 将13位unixtime(以ms为单位)转换为python中的时间戳

    我想将以毫秒为单位的 13 位 Unix 时间转换为时间戳 1523126888080 gt gt Y m d H M S 我已经尝试过以下代码link 但我认为这是 10 位 Unix 时间 而我有 13 位 Unix 时间 所以 这段代
  • R:按值排除子集的 Data.table

    Using data table in R 我正在尝试对子集进行操作排除选定的元素 我正在使用by运算符 但我不知道这是否是正确的方法 这是一个例子 例如 的价值Delta in IAH SNA是 3 3 2 的平均值Stops in IA
  • 从 IntPtr(16 位)数组复制到托管 ushort

    我有一个IntPtr称为rawbits 它指向一个10MB的数据数组 16位值 我需要返回一个托管的ushort数组由此而来 下面的代码可以工作 但有一个额外的BlockCopy我想摆脱 Marshal Copy不支持ushort 我能做些
  • 使用矩阵中的行索引和列索引从矩阵中提取值

    我有一个矩阵 A 看起来像 A matrix 1 9 3 3 A 1 2 3 1 1 4 7 2 2 5 8 3 3 6 9 以及我感兴趣的元素索引矩阵 第 1 列包含行索引 第 2 列包含列索引 v matrix c 1 3 2 2 2
  • 如何在java程序中使用mkdir和rmdir命令

    我想使用系统命令 例如mkdir and rmdir运行java程序时 我怎样才能做到这一点 为什么要使用命令行 仅供参考 有内置的独立于平台的File类 http www exampledepot com egs java io dele
  • 以固定速率安排 Callable

    我有一个任务想要以固定速率运行 但是我还需要每次执行后任务的结果 这是我尝试过的 The task class ScheduledWork implements Callable
  • RoutedCommands 已执行和预览执行事件

    我的问题是我想在多个地方处理命令 例如 我有自定义用户控件 其中按钮绑定到某个命令 我在该控件中有一个命令绑定 但在使用该控件的窗口中也有一个命令绑定 我的目标是在控件内执行某些操作 同时不中断窗口中命令的处理 我尝试尝试执行和预览执行事件
  • 将列表元素向右移动并将列表元素从末尾移动到开头

    我想旋转列表中的元素 例如 将列表元素向右移动 a b c d 会成为 d a b c or 1 2 3 变成 3 1 2 我尝试了以下方法 但它不起作用 def shift aList n len aList for i in range
  • cpu使用率最高的进程名称

    我有一个Samurize配置显示类似于任务管理器的 CPU 使用率图表 如何同时显示当前CPU使用率最高的进程名称 我希望最多每秒更新一次 Samurize 可以调用命令行工具并将其输出显示在屏幕上 因此这也可以是一个选项 进一步澄清 我已
  • 仅在粘贴时限制输入数字

    我有一个名为restrict numbers 的类 我想将输入的字符限制为仅接受数字 我使用了以下代码 这很好 但问题是我想在输入中粘贴时进行相同的限制在不完全禁用粘贴的情况下提交 function input only numbers i
  • git status 返回“致命:不是 git 存储库”但 .git 目录存在

    我有一个当前无法推送到的远程文件夹 当我直接进入远程目录并执行 git status 时 它会显示 致命 不是 git 存储库 git 文件夹确实存在 并且昨天工作正常 此后没有任何变化 谁能告诉我即使 git 文件夹存在也可能收到此消息的
  • 如何从 Java 与 ADFS 通信? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我们有一个在 Caucho Resin 上运行的网站 它主要是使用 JSP 用 Ja va 编写的 我们在网站上有自己的自定义身份验证 我们没有使用任何第三方身份验证框架 我们现
  • PHP 反射类。如何获取属性的值?

    我在 PHP 中使用反射类 但我不知道如何获取反射实例中的属性值 有可能的 代码 如何获取 foreach 循环内的属性值 此致 怎么样 ReflectionProperty getValue 获取属
  • VS Code:登录错误:您似乎处于离线状态。请检查您的网络连接

    在 VS Code 中 当我尝试运行以下命令进行登录时 我收到以下错误消息并且无法登录 由于在公司代理后面工作 我遇到了同样的问题 我可以通过在设置中写入http代理来解决这个问题 而不是将其留空并从环境变量继承
  • JQuery 数据表在输入中搜索并选择

    将 Jquery Datatables 与输入和选择一起使用 如下所示 http datatables net examples api form html或者 如果我使用自定义列呈现处理程序来生成输入并选择如何使全局表搜索工作 如果您查看