bootstrap数据表自定义下拉过滤器

时间:2017-02-03 09:46:05

标签: javascript php jquery codeigniter datatable

我在页脚的codeigniter项目中使用bootstrap数据表我包含了这个数据表js并初始化为

$('.datatable').dataTable({
            "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
            "sPaginationType": "bootstrap",
            "oLanguage": {
            "sLengthMenu": "_MENU_ records per page"
            }
        } );

现在,我希望在所需列中的所需列表页面中自定义过滤器  我试过

<select id="s" name="s">
<option value="1">Hyd</option>
<option value="2">Warangal</option>
</select>

和js为

<script>
$(document).ready(function(){
    $('#s').change( function() {
        //alert($(this).val());
oTable.fnFilter( $(this).val(), 2 );
} );
});
</script>

我想使用城市下拉列表进行过滤。

2 个答案:

答案 0 :(得分:2)

希望这就是您所寻找的,fiddle

$(document).ready(function() {
    var table =  $('#example').DataTable();

    $('#dropdown1').on('change', function () {
        table.columns(1).search( this.value ).draw();
    } );
    $('#dropdown2').on('change', function () {
        table.columns(2).search( this.value ).draw();
    } );
});

和平!

答案 1 :(得分:0)

您可以这样做:

       $('.datatable').dataTable({
       "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
       "sPaginationType": "bootstrap",
       "oLanguage": {
           "sLengthMenu": "_MENU_ records per page"
       },
       initComplete: function() {
           this.api().columns().every(function() {
               $('#s').change(function() {

                   var val = $.fn.dataTable.util.escapeRegex(
                       $(this).val()
                   );

                   column.search(val ? '^' + val + '$' : '', true, false).draw();
               });
           });
       }

   });

Source