jQuery DataTables 搜索列是一个复选框

2024-02-06

我在用jQuery DataTables 单独列搜索 https://datatables.net/examples/api/multi_filter_select.html,在我的一张表和我的一列上包含复选框。

HTML

<table id="NewTable" class="table table-bordered table-striped">
    <thead>
        <tr>
            <th class="col-sm-1 text-center ">
                @Html.DisplayNameFor(model => model.c_AMake.AMake)
            </th>
            <th class="text-center col-sm-1">
                @Html.DisplayNameFor(model => model.Model)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Test)
            </th>
        </tr>
    </thead>
    <tfoot id="NewTable-Foot" style="display: table-header-group">
        <tr>
            <th class="col-sm-1 text-center ">
                @Html.DisplayNameFor(model => model.c_AMake.AMake)
            </th>
            <th class="text-center col-sm-1">
                @Html.DisplayNameFor(model => model.Model)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Test)
            </th>
        </tr>
    </tfoot>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.c_AMake.AMake)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Model)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Test)
            </td>
        </tr>
    }
</table>

jQuery

var newTable = $('#NewTable tfoot th').length;

// Setup - add a text input to each footer cell
$("#NewTable tfoot th").each(function (index) {
    if (index !== newTable - 1) {
        var title = $(this).text().trim();
        $(this).html('<input type="text" class="form-control" placeholder="' + title + '"/>');
    }
});

var newDTTable = $('#NewTable').DataTable();

newDTTable.columns().every(function () {
    var that = this;
    console.log(this.data());
    $('input', this.footer()).on('keyup change',
        function () {
            if (that.search() !== this.value) {
                that
                    .search(this.value)
                    .draw();
            }
        });
});

这会显示我所说的列,如下所示:

但是,如果我开始在文本框中输入“True”..我的表格会刷新并显示“未找到匹配的记录”。很公平,因为就 HTML 渲染而言,复选框没有“true”值。相反,它只是显示“checked=”checked”。

但作为一个论点,当我这样做时console.log(this.data()),我看到表中的每一行,这些值返回为“True”、“False”、“False”。

有没有办法通过 jQuery 数据表搜索选中或未选中的复选框?

UPDATE

以下是我创建搜索框的方法:

$("#NewTable tfoot th").each(function (index) {
    if (index !== newTable - 1) {
        var title = $(this).text().trim();
        $(this).html('<input type="text" class="form-control" placeholder="' + title + '"/>');
    }
});

UPDATE 2

var newDTTable = $('#NewTable').DataTable({
    dom: 'Bfrtip',
    buttons: [
    {
        extend: 'excel',
        exportOptions: {
            columns: ':not(:last-child)'
        }
    }],
    aoColumnDefs: [
        {
            "render": function (data, type, row) {
                if (data.indexOf("checked") > -1) {
                    return data + "<input type='hidden' value='True' />";
                }
                else return data + "<input type='hidden' value='False' />";
            },
            "targets": 5
        },
        { "bSortable": false, "aTargets": [2, 18] },
        { "bSearchable": false, "aTargets": [4,7,8,9,10,11,12,13,14,15,16,17,18] }
    ]
});

newDTTable.columns().every(function (colIdx) {
    var that = this;
    console.log(this.data());
    $('input', this.footer()).on('keyup change',
        function() {
            if (that.search() !== this.value) {
                that
                    .search(this.value)
                    .draw();
            }
        });
});

这是我对数据表的定义/创建。有一些隐藏列在这个问题的上下文中并不重要。


我在这里创建了(实际上是蚕食了;))一个小提琴:http://jsfiddle.net/gk67srwb/2/ http://jsfiddle.net/gk67srwb/2/

基本技巧是在渲染复选框列时将隐藏的输入字段附加到复选框:

var table = $('#example').DataTable({
    "columnDefs": [
        {
            "render": function ( data, type, row ) {
            console.log(data);
            if(data === "True"){
                return "<input type='checkbox' checked disabled /><input type='hidden' value='" + data + "' />";
                }
                else return "<input type='checkbox' disabled /><input type='hidden' value='" + data + "' />";
            },
            "targets": 2
        }
        ]
});

现在,当您在列搜索框中输入 true // false 时,系统会相应地过滤行。当然,您可以为隐藏字段指定一个更方便的值(0 / 1)或创建一个下拉列表/复选框。

希望这对您有帮助!

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

jQuery DataTables 搜索列是一个复选框 的相关文章

  • jquery ajax调用一个接一个循环而不停止页面渲染

    我有一个超过 100 行的表 每行包含 pdf 文件及其说明以及最后一列状态 状态显示 pdf 文件是否可读 一旦表格加载到浏览器中 我就会从表格的每一行获取每个文件名 并使用 ajax 调用对其进行处理 如果文件可读 我将该行的状态字段更
  • 改进 D3 序列旭日示例

    This D3示例作为我的出发点 http bl ocks org kerryrodden 7090426 http bl ocks org kerryrodden 7090426 我想更改提供图表的数据 并且我做了以下新示例 http j
  • 如何在一段特定时间后在后台运行 ajax 调用? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在一段特定的时间后显示警报消息 您想继续吗 如果用户同意 则 ajax 调用必须在后台运行 否则取消 ajax 调用 那么请告诉我
  • 更新 Google 地图流量层而无需重新加载页面

    我的页面中嵌入了 Google 地图 我使用 initMap js 函数来初始化地图 function initMap var map new google maps Map document getElementById t map zo
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 哪些网络浏览器不支持 Javascript?以及如何识别客户端使用的是哪个浏览器?

    是否有不支持 javascript 的网络浏览器 以及如何确定客户端是否正在使用这些浏览器之一 或者客户端禁用了javascript 是否有不支持 javascript 的网络浏览器 当然 Lynx http en wikipedia or
  • 在 HTML5 中将两个图像合并到一个画布上

    我正在使用 HTML5 canvas 元素 假设我有 2 个 ImageData 对象 我想将它们组合起来放在一张画布上 假设我不关心这些图像如何组合 两个 ImageData 对象具有完全相同的像素数和形状 组合两个图像的最佳方式是什么
  • 删除 Laravel Mix 中的临时文件

    我想在 laravel mix 构建期间或之后删除临时构建文件 这是我目前拥有的一些代码 但是del不工作 const mix require laravel mix const del require del compile sass i
  • JavaScript:预期的赋值或函数调用,却看到了一个表达式

    我正在使用 JSHint 来确保我的 JavaScript 是 严格的 但我收到以下错误 预期是赋值或函数调用 但看到的是表达式 关于以下代码 var str A B C D var data var strArr str split fo
  • 如何创建增量加载网页

    我正在编写一个处理大量数据的页面 它会永远持续到我的结果页面加载 几乎无限 因为返回的数据太大了 因此 我需要实现一个增量加载页面 例如 url 中的页面 http docs python org http docs python org
  • Phonegap facebook 插件:android 的各种问题

    我正在尝试将 Phonegap 3 1 与 Phonegap facebook plugin 集成 以使我的应用程序能够使用 facebook 登录 https github com phonegap phonegap facebook p
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • HTML 和 JavaScript - 将滚动操作从一个元素传递到另一个元素

    假设我有两个 div div div div A scrollable list div 我想让它当光标停在里面时 control并且鼠标滚轮滚动 view将会滚动 无论如何要实现这一目标 好的 快速修复对我有用 即使固定 div 不可滚动
  • 父指令属性更改时子指令不会更新

    这是对这两个问题的后续 在父指令和子指令之间传递参数 https stackoverflow com questions 42814530 pass argument between parent and child directives
  • JavaScript 中最长的通用前缀

    我正在尝试解决 Leet Code 挑战14 最长公共前缀 https leetcode com problems longest common prefix 编写一个函数来查找字符串数组中最长的公共前缀字符串 如果没有公共前缀 则返回空字
  • 如何修复nodejs Express服务器中的“MulterError:意外字段”?

    我正在设置一个服务器来从客户端上传 zip 文件 服务器运行express和multer来执行此操作 上传文件时 服务器抛出 MulterError 意外字段 错误 我无法弄清楚是什么导致了它 我尝试过使用 png 图像 效果很好 但对于
  • 如何设置 Firebase 用户的显示名称?

    根据Firebase网站上的JS Auth文档 它只展示了如何获取 displayName 以及如何更新 displayName 所以我尝试更新它 但这有点不合逻辑 因为你怎么能在不创建某些东西的情况下更新它呢 所以我的问题是 如何设置注册
  • 使用 JQuery 预填充选择字段的下拉选项验证

    我有这个 JQuery 片段来防止选择已在另一个字段中选择的下拉选项 var coll select name service on change function coll each function var val this value

随机推荐

  • 如何根据字符串值列表对 pandas 数据框进行子集化?

    我有一个超过 100k 行长 几列宽的 dF 没什么疯狂的 我正在尝试根据大约 4000 个字符串的列表对行进行子集化 但我正在努力弄清楚如何做到这一点 有没有一种方法可以使用类似的方法进行子集化 dF 看起来像这样 dog name co
  • 选项卡栏确实选择委托方法给出了 ios、swift 3 中先前选择的选项卡索引

    我正在尝试实时检测用户选择的选项卡 例如 如果用户选择0 th索引 同时我想让用户选择了zeroth索引选项卡 所以为此 我用了tabbarcontroller委托方法如下 override func tabBar tabBar UITab
  • 在 GitHub for Windows 中恢复此提交和回滚此提交是什么意思?

    Windows 版 Github 具有这两个命令 描述如下 revert this commit 创建一个新的提交来恢复此提交的更改 rollback this commit 回滚此提交 将在此提交和以后提交中所做的所有更改保留在工作目录中
  • 确定事件之外的鼠标位置(使用 jQuery)?

    我需要使用 最好是 jQuery 来获取绝对鼠标位置 坐标 X 和 Y 如本教程 http docs jquery com Tutorials Mouse Position但在任何 JavaScript 事件之外 谢谢 不可能 但是 您可以
  • 重复的元素具有相同的展开变量

    你好 我有一些来自 vuetify 的代码 https vuetifyjs com en components cards custom actions https vuetifyjs com en components cards cus
  • C 运算符优先级,a++ && b++ || 中的逻辑运算符与一元运算符++c

    在下面的代码中 int a 1 b 2 c 3 d d a b c printf d n c 输出将为 3 我得到它或评估第一个条件 将其视为 1 然后不关心其他条件 但在 c 中 一元运算符比逻辑运算符具有更高的优先级 就像在数学中一样
  • Matplotlib 图未因数据更改而更新

    我正在使用实现图像查看器matplotlib 这个想法是对图像所做的更改 例如过滤器应用程序 将自动更新 我创建了一个图来显示初始图像 并使用添加了一个按钮pyQt更新数据 数据does改变 我检查过 但图没有 However 如果在我按下
  • Express 路由器 CRUD API。无法删除

    嗯 我正在阅读 MEAN Machine 一书并遵循其中的示例 我试图找出我的代码有什么问题 这样它就不会发出任何删除请求 GET PUT 和 POST 正常工作 我的 server js 上有这段代码 app all function r
  • 使用随机生成的数字创建临时表名称

    到目前为止我有这个代码 declare random int upper int lower int rndtb varchar 20 set lower 1 set upper 999 select random ROUND upper
  • 如何在 Silverlight 中将图像环绕圆柱体

    我正在尝试用 silverlight 将图像包裹在圆柱体周围 我在谷歌上查了很多 但没有找到任何东西 据我所知 这可以通过像素着色器来完成 但不知道如何实现 是否可以 Thanks 它不是完全包裹在圆柱体上 但您将得到一个起始想法 示例 代
  • 在.net core中对mongodb存储引用关系进行建模

    我是 mongo 的新手 在处理引用关系并在 net core 中对其进行建模时 我正在寻找一些有关最佳实践的指导 是的 这就是通常的 加入 mongodb 问题 但我还没有找到一个好的答案 为了简单起见 假设我有一个简单的 API 正在使
  • Laravel 5.3 db:seed 命令根本不起作用

    我所做的一切都是按书本进行的 安装了新的 Laravel 5 3 9 应用程序 我所有的非新应用程序都会产生相同的错误 run php artisan make auth 为新表创建迁移 php artisan make migration
  • 这是否是一个错过的优化机会

    我已经发布this https stackoverflow com a 59290242 10147399回答 代码 include
  • 如何使用反应钩子动态添加“refs”?

    所以我有一个数据数组 并且我正在使用该数据生成一个组件列表 我想在每个生成的元素上有一个引用来计算高度 我知道如何使用 Class 组件来做到这一点 但我想使用 React Hooks 来做到这一点 这是一个解释我想要做什么的示例 impo
  • 我们如何获取数据绑定以使用保存的实例状态?

    TL DR 如果与数据绑定一起使用的布局具有EditText 并且有一个绑定表达式android text 绑定表达式会覆盖保存的实例状态值 即使我们没有显式触发绑定评估 用户在配置更改之前输入的内容将被删除 我们如何解决这个问题 以便在配
  • 禁用根记录器的输出

    我在名为 logger py 的文件中有以下代码 import logging format asctime s name 30s levelname 8s message s logging basicConfig level loggi
  • Python底图:使用shadedrelief、bluemarble或etopo时出错(错误的经度格式?)

    我想绘制一张以太平洋为中心的南半球地图 并使用 python matplotlib 底图在其上绘制一些内容 一切工作正常 除非我尝试使用底图例程阴影浮雕 bluemarble 或 etopo 绘制背景图像 代码 没有我想在地图上绘制的内容
  • Visual Studio ALT 代码符号

    我正在寻找 Visual Studio 2010 中的 ALT 代码符号列表 具体来说 我正在寻找 PI 符号 我查了一下 发现应该是ALT 227或者ALT 960 我在 VS 中尝试过 但提供的符号不同 因此我在这里问这个问题 非常感谢
  • Java add() 方法约定

    所以 我通常是一名 ruby 程序员 所以我对 Java 约定的掌握充其量是不稳定的 如果我有一个类 A 并且想要定义一个方法来添加该类的两个实例 那么行为和返回类型的约定是什么 public class A public NotSureW
  • jQuery DataTables 搜索列是一个复选框

    我在用jQuery DataTables 单独列搜索 https datatables net examples api multi filter select html 在我的一张表和我的一列上包含复选框 HTML table class