在搜索dataTable时,dataTable行减少为1时显示按钮

时间:2015-09-18 03:16:29

标签: javascript jquery html5 datatable show-hide

我正在使用jQuery dataTable列出一组成员。当在表中搜索某个成员时,并且当dataTable行仅减少到该成员时,我想要一个按钮出现,否则该按钮应保持隐藏状态。

我找不到将偶数处理程序链接到此的方法。请帮我解决一下。

<script>
    $(function() {
        $('#addButton').hide();
    });
</script>

<script>
    $('#example4_filter input').keydown(function() {
        if ($('#example4 > tr').length == 1) {
            $('#addButton').show();
        } else {
            $('#addButton').hide();
        }
    });
</script>

<table id="example4" class="display table table-bordered table-striped" width="100%" cellspacing="0">
            <col width='110'>
            <col width='auto'>
            <col width='120'>
            <thead height='35'>
                <tr>
                    <th>Code</th>
                    <th>Member Name</th>
                    <th>NIC</th>
                    <th> <p id='addButton'> <a href="{{ url('') }}" class="btn btn-success btn-xs"> <span class="glyphicon glyphicon-check"></span> <strong> &nbsp Select </strong> </a> </p> </th>
                </tr>
            </thead>

            <tbody>
                @foreach ($memberDetails as $memberDetail)
                <tr>
                    <td data-search="Tiger Nixon"> {!! $memberDetail->id !!} </td>
                    <td> {!! $memberDetail->firstName.' '.$memberDetail->lastName !!} </td>
                    <td> {!! $memberDetail->nic !!} </td>
                    <td> </td>
                </tr>
                @endforeach
            </tbody>
        </table>

这是搜索dataTable的检查元素代码......

<div id="example4_wrapper" class="dataTables_wrapper form-inline dt-bootstrap no-footer">

    <div class="row">
        ::before
        <div class="col-sm-6"></div>
        <div class="col-sm-6">
            <div id="example4_filter" class="dataTables_filter">
                <label>

                    Search:

                    <input class="form-control input-sm" type="search" placeholder="" aria-controls="example4"></input>

                </label>
            </div>
        </div>
        ::after

    </div>

$('#example4').DataTable({
                "paging": true,
                "lengthChange": false,
                "searching": true,
                "ordering": false,
                "info": false,
                "autoWidth": false,
                "lengthMenu": [[5], [5]]
            });

1 个答案:

答案 0 :(得分:1)

我假设你使用的是dataTables 1.10.x.您可以利用search.dt事件。如果您的table初始化如下:

var table = $('#example').DataTable({ 
    //options
}) 

当且仅当一条记录在dataTable中可见时,使用search.dt事件显示按钮:

$('#example').on('search.dt', function() {
   if (table.rows( {filter:'applied'} ).data().length == 1) {
      $('#addButton').show();
   } else {
      $('#addButton').hide();       
   }     
})