我有一个数据表,其中包含指向CRUD更新程序的链接。一旦用户提交更改,我将它们返回到表并使用stateSave: true
选项来保持数据表的状态。这一切都有效。
我还有一个自定义过滤器框。当用户提交更改表时,会刷新并恢复到已保存状态,但是过滤器框不显示用户输入的过滤器,它只显示占位符。如何将过滤器变量重新加载到过滤器输入框中?
谢谢!
注意:1)运行JSFiddle并过滤某些内容。 2)再次运行JSFiddle,它应该加载你保存的状态。 3)请注意,输入仅在默认数据表过滤器中,而不在id="searchbox"
JavaScript(数据表):
<script>
$(document).ready(function() {
oTable = $('#dataTables').dataTable( {
"sDom": '<"top"l>rt<"bottom"ip><"clear">',
fnDrawCallback : function() {
$('#dataTables').highlight(['Empty']);
},
stateSave: true
});
$('#searchbox').on("input", function() {
oTable.fnFilter( $(this).val() );
});
$('#searchbtn').click(function(){
oTable.fnFilter( $(searchbox).val() );
});
});
</script>
HTML(输入组):
<div class="input-group">
<input type="text" class="form-control pull-right" placeholder="Search" id="searchbox">
<span class="input-group-btn">
<button class="btn btn-default" id="searchbtn" type="button">Search</button>
</span>
</div><!-- /input-group -->
修改 作为参考,我启用了默认的DOM过滤器元素,只是为了看看它在重新加载已保存状态时做了什么。过滤器仍在默认过滤器框中,但不在我的自定义过滤器框中。我需要将过滤器输入到顶部过滤器框中。