Javascript 如何在通过单击“清除过滤器”后刷新datatables表;清晰的;按钮
我已将过滤器输入修改为a,其中还包含一个删除按钮,以清除输入字段 这只能起到一半的作用,因为当我单击delete时,输入字段将被清除,但表不会更新 因此,我正在寻找一些有关如何在单击\fnFeatureHtmlFilter函数中的自定义删除按钮时刷新表的提示 下面的代码显示了如何设置JQM搜索。但是,不要认为这有助于回答这个问题Javascript 如何在通过单击“清除过滤器”后刷新datatables表;清晰的;按钮,javascript,jquery,jquery-mobile,filter,datatables,Javascript,Jquery,Jquery Mobile,Filter,Datatables,我已将过滤器输入修改为a,其中还包含一个删除按钮,以清除输入字段 这只能起到一半的作用,因为当我单击delete时,输入字段将被清除,但表不会更新 因此,我正在寻找一些有关如何在单击\fnFeatureHtmlFilter函数中的自定义删除按钮时刷新表的提示 下面的代码显示了如何设置JQM搜索。但是,不要认为这有助于回答这个问题 /* jqm search input */ sSearchStr = oSettings.oInit.bJQueryMobileUI == true
/* jqm search input */
sSearchStr = oSettings.oInit.bJQueryMobileUI == true ? '<input placeholder="Filtern" data-type="search" data-theme="'+DataTable.ext.oJQMthemes.wrapperTheme+'" />' :
( (sSearchStr.indexOf('_INPUT_') !== -1) ?
sSearchStr.replace('_INPUT_', '<input type="text" />') :
sSearchStr==="" ? '<input type="text" />' : sSearchStr+' <input type="text" />' );
var nFilter = document.createElement( 'div' );
/* jqm wrapper classes */
nFilter.className = oSettings.oInit.bJQueryMobileUI == true ? "ui-block-c "+oSettings.oClasses.sFilter : oSettings.oClasses.sFilter;
oSettings.oInit.bJQueryMobileUI == true ? $(nFilter).html(sSearchStr) : $(nFilter).html('<label>'+sSearchStr+'</label>');
/*jqm搜索输入*/
sSearchStr=oSettings.oInit.bJQueryMobileUI==true?“”:
((sSearchStr.indexOf)(“输入”!=-1)?
sSearchStr.替换(“输入”),“”:
sSearchStr===“”?“”:sSearchStr+“”);
var nFilter=document.createElement('div');
/*jqm包装类*/
nFilter.className=oSettings.oInit.bJQueryMobileUI==true?“ui-block-c”+oSettings.oClasses.sFilter:oSettings.oClasses.sFilter;
oSettings.oInit.bJQueryMobileUI==真$(nFilter.html(sSearchStr):$(nFilter.html(“”+sSearchStr+“”);
谢谢你的建议 找到了一个解决方案:
$('.dataTables_filter .ui-input-clear').live('click', function(e) {
jqFilter.val("");
jqFilter.trigger('keyup.DT');
});
这将绑定到清除按钮。因此,当单击时,我手动将输入值设置为“”,因为JQM清除按钮似乎并没有真正清除输入本身
清除输入后,我触发输入上的键控。这将触发普通的dataTables Rountene,这将触发fnFilter函数,因为现在jqFilter.value与以前的搜索项不匹配。因为jqFilter是空的,fnFilter将再次显示整个表
可能对其他人也有用。您可以通过请求DataTables API搜索空字符串,以编程方式清除筛选器:
$('#myTable').dataTable().fnFilter('')代码>
或者,如果已经有对象引用:
mytable.fnFilter(“”)代码>非常有用。我不敢相信,但是是的。谢谢你!太糟糕了,datatables插件没有一种优雅的方式通过JS控制搜索/过滤。感谢所有的贡献者,但我发现这个答案更加简洁和中肯。