javascript - 使用 dataTable 的列过滤不起作用

标签 javascript jquery datatables

下面我有一个值数组(testdata),它被赋予了 dataTable 。

现在我想为数据表添加列过滤。 我使用了以下代码。

//USING DATATABLE ///


    $.get( '/index.php/async/getDispatchDetails/'+data,function( data ) {
     

      var testdata =data.dispatchdata;
      console.log(testdata); 
      console.log(typeof (testdata));
      
     

      var testdata = $.map(testdata, function(value, index) {
      return [value];
    });

      console.log(testdata);



    //USING DATATABLE ///


$('#dispatchDetailTable').dataTable({
    "aaData": testdata,
        "aoColumns": [{
        "mDataProp": "dispatchid"
    }, {
        "mDataProp": "itemname"
    }, {
        "mDataProp": "quantity"
    }, {
        "mDataProp": "weight"
    }, {
        "mDataProp": "accountname"
    }]
}).columnFilter({
      aoColumns: [ { type: "select", values: [ 'Gecko', 'Trident', 'KHTML', 'Misc', 'Presto', 'Webkit', 'Tasman']  },
             { type: "text" },
             null,
             { type: "number" },
             { type: "select" }
        ]

    });
});
<!-- Table -->
<table id="dispatchDetailTable" class="table table-striped">
  <thead>
    <tr>
      <!--   <th>Sr.Nos</th> -->
      <th>Id</th>
      <th>Item</th>
      <th>Qty</th>
      <th>Kg</th>
      <th>Account</th>

    </tr>
  </thead>
  <tbody>

  </tbody>
  <tfoot></tfoot>
</table>

控制台显示以下错误:

Uncaught TypeError: $(...).dataTable(...).columnFilter is not a function

最佳答案

Uncaught TypeError: $(...).dataTable(...).columnFilter is not a function

这是因为列过滤一个单独的插件,您可能没有包含它。

您还可以像这样使用 fnFilter():

$('#dispatchDetailTable').dataTable({
    "aaData": testdata.aaData,
    "aoColumns": [{
        "mData": "dispatchid"
    }, {
        "mData": "itemname"
    }, {
        "mData": "quantity"
    }, {
        "mData": "weight"
    }, {
        "mData": "accountname"
    }]
}).fnFilter('Gecko|Trident|KHTML|Misc|Presto|Webkit|Tasman', 0, true);

fnFilter(values, columnIndex, regex)

这是 fiddle .

如果您在数组中有过滤值,那么您也可以添加:

var filterData = [ 'Gecko', 'Trident', 'KHTML', 'Misc', 'Presto', 'Webkit', 'Tasman'].join('|');

关于javascript - 使用 dataTable 的列过滤不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32539015/

相关文章:

jquery - 使用 jquery 选择伪元素

javascript - 使用 jQuery 函数作为事件

vue.js - 使用 Vue.js 和 DataTable(jquery 插件)

javascript - 使用 JQuery 根据窗口大小调整容器大小

javascript - 如何为网络上的多个页面维护 Firebase Auth?

javascript - 没有小时、分钟和秒的 getTime 对应的日期是什么?

javascript - Firebase 网络应用程序 - 创建新帐户时无法获取 user.uid

javascript - 具有动态数组名称的数据表 JSON

javascript - 数据表过滤器数量大于

javascript - 如何在 Javascript switch-case 语句中执行 `finally`?