带有复选框AND searchbox-javascript的引导程序表过滤器
bootstrap table filter with checkbox AND searchbox - javascript
我有以下两个引导表过滤器设置,它们各自都非常完美。然而,我有问题"合并"它们,它们可以很好地一起发挥:
$("#filter").keyup ->
rex = new RegExp($(this).val(), "i")
$(".searchable tr").hide()
$(".searchable tr").filter(->
rex.test $(this).text()
else
rex.test $(this).text()
).show()
$(".no-data").hide()
$(".no-data").show() if $(".searchable tr:visible").length is 0
return
和
$("#filterCheckBox").on "change", ->
if @checked
$(".searchable tr").hide()
$(".searchable tr").filter(->
$(this).find("td").eq(3).text() isnt 0
).show()
$(".no-data").hide()
$(".no-data").show() if $(".searchable tr:visible").length is 0
else
$(".searchable tr").show()
$(".no-data").hide()
return
我的问题是一个过滤器总是覆盖另一个过滤器。我试过很多次把它们合并在一起,但都没有成功。
filterCheckBox应该比第一个过滤器"更强"。
编辑:这是一个jsfiddle:http://jsfiddle.net/mtz1etfz/
好的-我修改了你的小提琴。
我添加了两个新功能:
function checkZero(currentTr){
if( $('#filter2').is(':checked'))
{
return ($(currentTr).find('td').eq(3).text() !== "0");
}else
{
return true;
}
}
function matchesSearch(currentTr) {
var rex = new RegExp($("#filter").val(), 'i');
return rex.test($(currentTr).text());
}
它们基本上封装了您在更改处理程序中所做的检查。然后我还修改了您的更改处理程序-调用BOTH函数。你想同时应用两个"过滤器",所以你必须检查两个:
$('.searchable tr').filter(function () {
return matchesSearch(this) && checkZero(this);
}).show();
http://jsfiddle.net/mtz1etfz/1/
相关文章:
- 使用jquery调用vaadin应用程序表单php
- 仅在引导程序表单助手国家/地区选取器中显示国家/地区子集文本
- 突出显示搜索文本引导程序表
- Html引导程序表未显示在屏幕上
- 如何初始化Twitter引导程序表单助手日期选择器
- 融合表过滤器
- 使用可能的字段编辑器打开新表中的引导程序表行
- 提交Chrome扩展程序表单
- 轻量级 Javascript 表过滤器,以最少的字符输入显示结果
- JavaScript 数据表过滤器选项不起作用
- 谷歌可视化数据表过滤器行
- 如何禁用引导程序表单字段
- 通过ajax和外接程序表将表行作为HTML代码返回
- 带有复选框AND searchbox-javascript的引导程序表过滤器
- 带有复选框的引导程序表筛选器
- 引导表过滤器-如何添加“;没有找到匹配的记录“;没有结果时行
- 自定义下拉筛选器和引导程序表分页刷新
- 在aspx中为应用程序表单创建选项卡
- Jquery数据表过滤器
- 融合表过滤器不能更新地图