私はそれはあなたのユースケースでは動作しませんでしたとしてkeepConditionsを使用してについての私の以前の提案を削除した(私がテストした)、それは私が考えるようになったと私はこれを作ってみた:基本的に
$('#example tfoot th').each(function(k, v){
var title = $(this).text();
$(this).html('<input type="text" data-position="'+k+'" placeholder="Search ' + title + '" />');
});
var example = $("#example").DataTable();
example.columns().every(function(){
var that = this;
$('input', this.footer()).on('keyup change', function(){
var hash = [];
$('#example tfoot th').each(function(k, v){
if(~~$(v).find("input").val().length){
hash.push($(v).find("input").data("position") + "=" + encodeURIComponent($(v).find("input").val()));
}
});
window.location.hash = hash.join("&");
if(that.search() !== this.value){
that.search(this.value).draw();
}
});
});
if(window.location.hash) {
var hash = window.location.hash.substring(1).split("&");
$.each(hash, function(k, v){
$("#example tfoot th input:eq("+v.split("=")[0]+")").val(decodeURIComponent(v.split("=")[1])).trigger("change");
});
}
検索タームが入力されるたびに、すべての入力を繰り返して、結果とともにURLハッシュを更新します。ハッシュがあるかどうかを確認し、その逆を実行します。これは動作しますexampleです。
希望に役立ちます。
あなたのリンク例は動作しません。 – Mike
こんにちは@Mike、リンクが訂正されましたが、失敗するのは悪い:-( – annoyingmouse
このDataTableはどのように初期化されていますか?フッターの列フィルタを使用していますが、初期化した場所はわかりません? – Mike