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 数据表在输入中搜索并选择 的相关文章

  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • jQuery 的 css() 在应用于滚动事件时滞后

    我正在尝试实现一个简单的 固定标题 表 我知道这在理论上只能用 CSS 来完成 但是当涉及到 OSX Lion 及其消失的滚动条时 它效果不佳 所以我用 jQuery 来做 方法很简单 只有1 5行代码 inbox scroll funct
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 在 Angular2 项目中集成 Treant-js

    我正在尝试在 Angular2 项目中使用 treant js 但我正在努力解决如何正确集成它的问题 我有一个工作正常的 JavaScript HTML 示例 我正在尝试在 Angular2 中工作 我创建了一个组件 从 npm 添加了 t
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 引入 V8 后,Google Apps 脚本无法为其他用户完全执行

    我编写了一个脚本 得到了这里好心人的大力帮助 该脚本使用 Google Sheets 脚本复制 Google Drive 上的文件夹 和内容 它运行了很长一段时间 但后来我启用了 V8 引擎 现在已禁用 问题是 它仍然适用于我 也许还有其他
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 在 Google Apps 脚本中的文本前插入换行符

    我需要在 Google 文档中的某些文本之前插入一些换行符 尝试过这种方法但出现错误 var body DocumentApp getActiveDocument getBody var pattern WORD 1 var found b
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 未捕获(承诺中)TypeError:无法读取 null popover.js 的属性“模板”

    当我触发时我注意到一个错误 popover dispose 当我上下滚动页面时 函数会发生错误 并且它会减慢我的页面速度 该函数按其应有的方式运行并关闭弹出窗口 但这就是错误Uncaught in promise TypeError Can
  • jQuery 覆盖默认验证错误消息显示(Css)弹出/工具提示等

    我试图用 div 而不是标签来覆盖默认的错误消息标签 我看过这个帖子 https stackoverflow com questions 309574 jquery validation how to not display errors
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 内联变量如何工作?

    在 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或者 如果我使用自定义列呈现处理程序来生成输入并选择如何使全局表搜索工作 如果您查看