【问题标题】:Show button when dataTable rows reduce to one on searching the dataTable在搜索数据表时数据表行减少为一时显示按钮
【发布时间】:2015-09-18 03:16:28
【问题描述】:

我正在使用 jQuery 数据表来列出一组成员。当在表中搜索成员时,并且当 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的inspect元素代码...

<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 则计算行数
  • 是的,但是怎么做呢?我试过但不能...这是我的代码
  • 编辑你的答案显示html和js
  • addButton 是保存按钮的

    元素 id example4 是我的表格 id

标签: javascript jquery html datatable show-hide


【解决方案1】:

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

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

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

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

【讨论】:

  • 如果我使用您所说的这种初始化方法,是否可以将自己的列添加到数据表中?我的意思是,假设我想要三列 id、name、age 如何在这个方法中初始化它们?
  • 问题是,我正在使用 php 用数据库中的数据填充数据表,那么是否可以用这些数据初始化数据表?
  • 您说要使用 var table = $('#example').DataTable({ //options }) 初始化数据表,但在我的情况下无法完成此方法,因为我正在获取数据使用数据库中的php,所以你的方法在这里不实用
  • @RIzanZaky,我假设你只是在做你已经在做的事情,你正在初始化一个数据表,不是吗?这是问题的全部前提。你在某个地方有一个DataTable(),我显示table = $('#example').DataTable({ //options }) 的唯一原因是解释你需要DataTable() 返回的table 变量。我这样做是因为您没有在问题中包含您的脚本。
  • 哦,对不起,它有效...我刚刚在脚本中添加了 var table 并使用了它...非常感谢
猜你喜欢
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
相关资源
最近更新 更多