[jQuery / Datatable]:数据表无响应,禁用输入搜索

时间:2015-01-25 17:23:12

标签: javascript jquery html datatable

我按照jQuery DataTables上的示例来制作带有选择输入搜索的数据表。

这是我的 html 代码示例:

<div class="jumbotron">
<table id="dataTables" class="display" cellspacing="0" width="100%">
        <thead>
        <tr>
          <th>Référence</th>
          <th>Activité(s)</th>
          <th>Parc immobilier</th>
          <th>Nom du Bâtiment</th>
          <th>Ensemble</th>
          <th></th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <th>Référence</th>
          <th>Activité(s)</th>
          <th>Parc immobilier</th>
          <th>Nom du Bâtiment</th>
          <th>Ensemble</th>
          <th></th>
        </tr>
      </tfoot>
      <tbody>
        {% for batiment in batiment %}
          <tr>
            <td>{{ batiment.referencebatiment }}</td>
            <td>
              {% for batiment in batiment.typesactivite %}
                {{ batiment.type }}
                <br>
              {% endfor %}
            </td>
            <td>{{ batiment.ensembles.parcsimmobilier }}</td>
            <td>{{ batiment.nom }}</td>
            <td>{{ batiment.ensembles }}</td>
            <td><a href=""><button class="btn btn-edit btn-xs sharp">Modifier</button></a></td>
          </tr>
        {% endfor %}
        </tbody>
      </table>
    </div>

所以这是我的 javascript 数据表代码:

$(document).ready(function() {
    $('#dataTables').DataTable( {
        responsive: true,
        //enlever la recherche sur une colone, ici la colone 2 et 4 => Office et Date. Attention 0 est une valeur, les colones commencent donc à partir de 0
        "aoColumnDefs": [
        { "bSearchable": false, "aTargets": [ 5 ] }],
        //
        //langue française
        "language": {
            "sProcessing":     "Traitement en cours...",
            "sSearch":         "Rechercher&nbsp;:",
            "sLengthMenu":     "Afficher _MENU_ &eacute;l&eacute;ments",
            "sInfo":           "Affichage de l'&eacute;lement _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments",
            "sInfoEmpty":      "Affichage de l'&eacute;lement 0 &agrave; 0 sur 0 &eacute;l&eacute;ments",
            "sInfoFiltered":   "(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)",
            "sInfoPostFix":    "",
            "sLoadingRecords": "Chargement en cours...",
            "sZeroRecords":    "Aucun &eacute;l&eacute;ment &agrave; afficher",
            "sEmptyTable":     "Aucune donn&eacute;e disponible dans le tableau",
            "oPaginate": {
                "sFirst":      "Premier",
                "sPrevious":   "Pr&eacute;c&eacute;dent",
                "sNext":       "Suivant",
                "sLast":       "Dernier"
            },
            "oAria": {
                "sSortAscending":  ": activer pour trier la colonne par ordre croissant",
                "sSortDescending": ": activer pour trier la colonne par ordre d&eacute;croissant"
            }
        },
        initComplete: function () {
            var api = this.api();
            api.columns().indexes().flatten().each( function ( i ) {
                var column = api.column( i );
                var select = $('<select><option value=""></option></select>')
                    .appendTo( $(column.footer()).empty())
                    .on( 'change', function () {
                        var val = $.fn.dataTable.util.escapeRegex(
                            $(this).val()
                        );
                        column
                            .search( val ? '^'+val+'$' : '', true, false )
                            .draw();
                    });
                column.data().unique().sort().each( function ( d, j ) {
                    select.append( '<option value="'+d+'">'+d+'</option>' );
                });
            });
        }
    });
});

就像你看到的那样,我用法语更改语言,并禁用搜索colums 5,因为我不希望允许用户根据此列进行搜索。因此,第5列的语言更改和禁用搜索功能非常好。

为什么我的数据表无法正确显示。它与bootstrap响应式设计没有妥协吗?如何禁用列中的搜索(列中的text内没有输入selecttfoot

我该怎么办?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您是否尝试导入提及here

的cdn

CSS://cdn.datatables.net/responsive/1.0.3/css/dataTables.responsive.css

JS://cdn.datatables.net/responsive/1.0.3/js/dataTables.responsive.js

答案 1 :(得分:1)

就像在他的回答中提到的@Gab一样,你需要像这样导入jQuery dataTables的cdn:

首先,您需要禁用或删除文件夹中的数据表CSS,如果不匹配或显示正确的<table>

然后导入CDN: CSS://cdn.datatables.net/responsive/1.0.3/css/dataTables.responsive.css JS://cdn.datatables.net/responsive/1.0.3/js/dataTables.responsive.js

以防万一,如果您的<table>中有任何其他数据,如编辑按钮,链接,则必须禁用此列上的搜索,否则您的数据表会出现一些显示问题

请点击此示例here,以禁用或不显示您不想要的<tfoot>中的搜索输入。