Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在通过单击“清除过滤器”后刷新datatables表;清晰的;按钮_Javascript_Jquery_Jquery Mobile_Filter_Datatables - Fatal编程技术网

Javascript 如何在通过单击“清除过滤器”后刷新datatables表;清晰的;按钮

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

我已将过滤器输入修改为a,其中还包含一个删除按钮,以清除输入字段

这只能起到一半的作用,因为当我单击delete时,输入字段将被清除,但表不会更新

因此,我正在寻找一些有关如何在单击\fnFeatureHtmlFilter函数中的自定义删除按钮时刷新表的提示

下面的代码显示了如何设置JQM搜索。但是,不要认为这有助于回答这个问题

    /* 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控制搜索/过滤。感谢所有的贡献者,但我发现这个答案更加简洁和中肯。