Jquery 是否可以让Datatables搜索框搜索一列,而使用下拉列表搜索其他列?
我试图设计一个表来满足一组特定的标准Jquery 是否可以让Datatables搜索框搜索一列,而使用下拉列表搜索其他列?,jquery,datatables,Jquery,Datatables,我试图设计一个表来满足一组特定的标准 将有列下拉列表,因此如果选择了某个选项,它将仅显示与该值完全匹配的列 将有一个搜索框,键入此框将仅在第一列进行筛选 不幸的是,这似乎是DataTables中两个相互矛盾的需求 此代码允许将搜索栏限制在第一列 numCols = $("#myTable thead tr:first th").length columns = [{ "searchable": true }] for (var i=1; i < numCols; i++) { co
numCols = $("#myTable thead tr:first th").length
columns = [{ "searchable": true }]
for (var i=1; i < numCols; i++) {
columns.push({ "searchable": false });
}
var table = $('#myTable').DataTable({
"paging": false,
"columns":columns
});
现在,我知道我已经在表的列
声明中将searchable
设置为false,删除该设置允许下拉列表再次工作-但这意味着搜索文本框会过滤所有列上的表,而不仅仅是第一列
旧式文档中说有一个bFilterable
选项做了类似的事情,但这在当前版本中已不再存在。现在我已经没有主意了
那么,有没有一种方法可以限制Datatables表,使搜索框只对一列进行筛选,而允许对其他列进行下拉筛选?
PS:事实证明,使用标准Datatables API无法实现这一点,但使用jQuery可以扩展表来管理这一点 首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何
搜索
选项)
然后,通过移除f
标志,使用旋转过滤框
然后在表本身之前创建一个自定义搜索框:
$('<input type="text" />')
.insertBefore('#myTable')
.before('<label>My special search: </label>')
.on( 'keyup change', function () {
table
.column( 0 )
.search( this.value )
.draw();
});
可以更改以匹配任意列中的字符串行,如下所示:
.columns(0,1,2)
.column([0,1,2])
或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:
.columns(0,1,2)
.column([0,1,2])
有很多小提琴演示了这个,所以你可以看到
- ,
- 或
查看功能差异的最佳示例字符串是
一个。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它
首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何搜索
选项)
然后,通过移除f
标志,使用旋转过滤框
然后在表本身之前创建一个自定义搜索框:
$('<input type="text" />')
.insertBefore('#myTable')
.before('<label>My special search: </label>')
.on( 'keyup change', function () {
table
.column( 0 )
.search( this.value )
.draw();
});
可以更改以匹配任意列中的字符串行,如下所示:
.columns(0,1,2)
.column([0,1,2])
或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:
.columns(0,1,2)
.column([0,1,2])
有很多小提琴演示了这个,所以你可以看到
- ,
- 或
查看功能差异的最佳示例字符串是一个。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它
首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何搜索
选项)
然后,通过移除f
标志,使用旋转过滤框
然后在表本身之前创建一个自定义搜索框:
$('<input type="text" />')
.insertBefore('#myTable')
.before('<label>My special search: </label>')
.on( 'keyup change', function () {
table
.column( 0 )
.search( this.value )
.draw();
});
可以更改以匹配任意列中的字符串行,如下所示:
.columns(0,1,2)
.column([0,1,2])
或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:
.columns(0,1,2)
.column([0,1,2])
有很多小提琴演示了这个,所以你可以看到
- ,
- 或
查看功能差异的最佳示例字符串是一个。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它
首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何搜索
选项)
然后,通过移除f
标志,使用旋转过滤框
然后在表本身之前创建一个自定义搜索框:
$('<input type="text" />')
.insertBefore('#myTable')
.before('<label>My special search: </label>')
.on( 'keyup change', function () {
table
.column( 0 )
.search( this.value )
.draw();
});
可以更改以匹配任意列中的字符串行,如下所示:
.columns(0,1,2)
.column([0,1,2])
或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:
.columns(0,1,2)
.column([0,1,2])
有很多小提琴演示了这个,所以你可以看到
- ,
- 或
查看功能差异的最佳示例字符串是an