首页 > 解决方案 > 如何在不更新“搜索”输入字段的情况下手动搜索数据表

问题描述

如果我手动调用:

tabla.search('Advanced:' + search).draw();

其中“tabla”是一个数据表,“search”输入字段将使用搜索文本进行更新。

事实是我正在使用相同的字段实现高级搜索功能。

如果用户在搜索字段中输入内容(简单搜索),网格将随着搜索自动刷新。还行吧。

但是,我有一个高级搜索表单。当执行这种搜索时,我需要发布到服务器的搜索参数包括所有带有“高级:”前缀的搜索字段。这样,在服务器端,我可以知道搜索是简单的还是高级的。

问题是当使用“搜索”方法时,输入字段会随着搜索内容而更新。如果执行高级搜索,此文本会出现在字段中,例如:

Advanced:Campo_1=936969&Campo_2=&Campo_4=&Campo_7=&Campo_3=&Campo_5=&Campo_6=&Campo_8=

有没有办法避免搜索字段被更新?

谢谢詹姆

标签: datatabledatatables

解决方案


最后,我创建了一个自定义搜索字段并删除了默认搜索字段。

为了完成它,我使用了这个 dom 定义:

           dom: "<'row'<'col-sm-12 col-md-4'<\"gridToolbar\">><'col-sm-12 col-md-4'l><'col-sm-12 col-md-4'<\"customSearch\">>>" +
                "<'row'<'col-sm-12'tr>>" +
                "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>"

然后,在 draw.dt 事件中,我添加了:

            $("div.customSearch").html('<div id="facturas_filter" class="dataTables_filter"><label>Buscar:<input type="search" class="form-control form-control-sm" placeholder="" aria-controls="facturas"></label></div>');
            $('#facturas_filter input').on('keyup', function () {
                tabla.search($('#facturas_filter input').val()).draw();
            });

干杯杰米


推荐阅读