数据表:长度过滤器丢失预先设置的自定义过滤器值

datatables: Length filter loses prepended custom filter value

here is my example

重新创建:

  1. 在 firebug 或 chrome 中打开您的网络面板以查看请求

  2. 更改自定义过滤器 #fundraiser_id,请注意 header form_data 显示您所做的新选择 (i_fundraiser)

  3. 将长度过滤器更改为任何新值

通过查看 header form_data,您现在会看到该参数已恢复为默认值

罪犯似乎是 .prependTo("#example_length")

通过评论出来,它工作正常

我不确定这里发生了什么,我试图通过 drawCallback 方法将前缀添加到 table,但存在同样的问题

"drawCallback": function( settings ) {
  $("#fr_dd")
      .prependTo("#example_length")
      .removeClass('hide');
},

有什么想法吗?

我认为问题在于您正在尝试使用 prependTo.

修改 DataTables 操作的区域

最好使用 dom 选项创建一个单独的 div 和 class my-filter

dom: "<'row'<'col-md-6 '<'my-filter'>l><'col-md-6 pull-right'>r>t<'row'<'col-md-6'i><'col-md-6'p>>",`

然后按如下方式处理 <div class="my-filter"></div>

$("#fr_dd")
   .prependTo(".my-filter")
   .removeClass('hide');

请参阅 this corrected example 进行演示。