简体   繁体   English

jQuery DataTables:隐藏搜索栏

[英]jQuery DataTables: hide search bar

I seem not able to hide DataTables default search bar.我似乎无法隐藏 DataTables 默认搜索栏。 So far, I have tried solution from this thread, but setting bFilter:false disables filtering entirely, so my search boxes in the footer simply do not work any longer.到目前为止,我已经尝试过这个线程的解决方案,但是设置bFilter:false会完全禁用过滤,所以我在页脚中的搜索框不再起作用。

I have put up jsfiddle我已经提出了jsfiddle

My HTML:我的HTML:

<thead>
    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css">
    <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
</thead>
<tbody>
    <table id="mytable">
        <thead>
            <tr>
                <th>name</th>
                <th>type</th>
                <th>color</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th></th>
                <th></th>
                <th></th>
            </tr>
        </tfoot>
        <tbody>
            <tr>
                <td>apple</td>
                <td>fruit</td>
                <td>red</td>
            </tr>
            <tr>
                <td>banana</td>
                <td>fruit</td>
                <td>yellow</td>
            </tr>
            <tr>
                <td>carrot</td>
                <td>vegie</td>
                <td>red</td>
            </tr>
            <tr>
                <td>potato</td>
                <td>vegie</td>
                <td>brown</td>
            </tr>
        </tbody>
    </table>
</tbody>

and jQuery code:和 jQuery 代码:

$(document).ready(function(){
    let table = $('#mytable').DataTable();
  $('#mytable tfoot th').each( function (i) {
        let title = $('#mytable thead th').eq( $(this).index() ).text();
        $(this).html( '<input type="text" placeholder="Search '+title+'" data-index="'+i+'" />' );
    } );
  $( table.table().container() ).on( 'keyup', 'tfoot input', function () {
    table
      .column( $(this).data('index') )
      .search( this.value )
      .draw();
  } );
});

Any help is much appreciated.任何帮助深表感谢。

You need to adjust sDom attribute of your DataTable accordingly: let table = $('#mytable').DataTable({sDom: 'lrtip'});您需要相应地调整 DataTable 的 sDom 属性: let table = $('#mytable').DataTable({sDom: 'lrtip'}); That's supposed to hide search box without disabling filtering feature.这应该隐藏搜索框而不禁用过滤功能。 Also, you might want to check out official reference doc regarding the subject.另外,您可能想查看有关该主题的官方参考文档。

Data table provides customization options to show and hide elements and also custom elements.数据表提供自定义选项来显示和隐藏元素以及自定义元素。 We can use dom values to customize:我们可以使用dom值来自定义:

 l - length changing input control
    **f - filtering input**
    t - The table
    i - Table information summary
    p - pagination control
    r - processing display element

    **f is for filter , so we can remove it.**

        $('#example').dataTable( {
          "dom": 'lrtip'
        } );
let table = $('#mytable').DataTable({sDom: 'lrtip'});

this worked for me这对我有用

Simply add this class in your css - .dataTables_filter, .dataTables_info { display: none; }只需在您的 css 中添加此类 - .dataTables_filter, .dataTables_info { display: none; } .dataTables_filter, .dataTables_info { display: none; }

The live instance -现场实例 -

 $(document).ready(function () { let table = $('#mytable').DataTable(); $('#mytable tfoot th').each(function (i) { let title = $('#mytable thead th').eq($(this).index()).text(); $(this).html('<input type="text" placeholder="Search ' + title + '" data-index="' + i + '" />'); }); $(table.table().container()).on('keyup', 'tfoot input', function () { table.column($(this).data('index')).search(this.value).draw(); }); });
 .dataTables_filter, .dataTables_info { display: none; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css"> <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script> <tbody> <table id="mytable"> <thead> <tr> <th>name</th> <th>type</th> <th>color</th> </tr> </thead> <tfoot> <tr> <th></th> <th></th> <th></th> </tr> </tfoot> <tbody> <tr> <td>apple</td> <td>fruit</td> <td>red</td> </tr> <tr> <td>banana</td> <td>fruit</td> <td>yellow</td> </tr> <tr> <td>carrot</td> <td>vegie</td> <td>red</td> </tr> <tr> <td>potato</td> <td>vegie</td> <td>brown</td> </tr> </tbody> </table> </tbody>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM