javascript - JQuery DataTables - 隐藏表直到搜索

标签 javascript jquery datatable

我将 DataTables 与 JQuery 结合使用以在我的网站上显示一些数据。我使用搜索功能来过滤数据,并给我预期的结果。我想做的是隐藏表格,直到用户开始在框中输入搜索内容,然后才显示正确的结果。现在是我的 DataTables 代码:

    function renderTable() {
        jQuery('.dataTable').show();
        jQuery('.dataTables_info').show();
        jQuery('.dataTables_paginate').show();
    }

    function hideTable() {
        jQuery('.dataTable').hide();
        jQuery('.dataTables_info').hide();
        jQuery('.dataTables_paginate').hide();
    }

    jQuery('.dataTables_filter input').keypress(function() {
        if (jQuery('.dataTables_filter input').val() != '') {
            renderTable();
        } else {
            hideTable();
        }
    });

    jQuery(document).ready(function() {

        jQuery('#resultsTable').DataTable({
            "paging": true,
            "pageLength": 25,
            "lengthChange": false,
            "pagingStyle": "simple_numbers",
            "language": {
                "search": "",
                "searchPlaceholder": "Search for an entry"
            },
            "order": [1, 'asc']
        });

        hideTable();

    } );

它成功地隐藏了 DataTable 中的所有内容,但 document.ready 上的搜索框除外,但是当用户单击该框并键入时,我无法让它调用我的 renderTables() 函数。我不确定我是否正确地定位它:'.dataTables_filter input'。 DataTables 呈现的搜索输入没有任何我可以定位的唯一 ID,因此我必须从包含它的过滤器元素中引用它。

最佳答案

尝试这样的事情:

创建一个函数来呈现具有所需过滤器参数的数据表,并在搜索功能上调用它。这样它就无法在页面加载时呈现表格。当您的搜索功能启动时,它将呈现带有过滤器参数的表格。

例如:

$(document).ready(function(){
    $('#search_box').keyup(function(){
        var searchStr = $(this).val();

        if((searchStr).length)
        {
            filterData();   // call the filter function with required parameters
        }
        else
        {
            // empty the table body
        }
    });
});

function filterData()
{
    // your code
}

关于javascript - JQuery DataTables - 隐藏表直到搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078316/

相关文章:

javascript - 当查询字符串不够长时,如何从 jQuery 调用(网络本地)第 3 方 Web 服务?

jquery - 在Jquery中动态隐藏数据表列和列数据

c# DataGrid BindingListCollectionView 自定义过滤器抛出聚合函数的无效用法意味着

javascript - 如何以编程方式将所需的行移动到数据表的顶部?

javascript - 为什么在 Error 上使用 parseInt 返回 14?

javascript - V8 内联缓存如何与删除和计算属性访问一起使用?

javascript - Angular 路线不刷新 View

使用 jQuery 的 JavaScript 意外对象行为

php - Yii Jquery AJAX 调用未触发

javascript - 如何在 bootstrap onClick 中更改容器 div 的宽度?