jQuery DataTables e Columnfilterwidget Botão Redefinir todos os filtros
Eu sou novo em Javascript.Então minha pergunta é um pouco boba.
Eu estava procurando pelo botão Redefinir todos os filtros do Columnfilterwidget e encontrei esse código.
$.fn.dataTableExt.oApi.fnResetAllFilters = function (oSettings, bDraw/default true/) {
for(iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[ iCol ].sSearch = '';
}
$('.filter-term').remove();
oSettings.oPreviousSearch.sSearch = '';
if(typeof bDraw === 'undefined') bDraw = true;
if(bDraw) this.fnDraw();
}
Eu preciso vinculá-lo a um botão para fazê-lo funcionar.
$(document).ready(function(){
$("button").click(function(){
$.fn.dataTableExt.oApi.fnResetAllFilters = function (oSettings, bDraw/default true/) {
for(iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[ iCol ].sSearch = '';
}
$('.filter-term').remove();
oSettings.oPreviousSearch.sSearch = '';
if(typeof bDraw === 'undefined') bDraw = true;
if(bDraw) this.fnDraw();
}
});
});
Mas não funciona, tudo o que clico no botão é que minha página é atualizada. O que estou fazendo de errado aqui ???
ATUALIZADA
$(document).ready(function(){
$("button").click(function(e){e.preventDefault();})
$("button").click(function(){
console.log("afterbutton");
$.fn.dataTableExt.oApi.fnResetAllFilters = function (oSettings, bDraw) {
console.log("insidefunction");
for(iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[ iCol ].sSearch = '';
}
$('.filter-term').remove();
oSettings.oPreviousSearch.sSearch = '';
if(typeof bDraw === 'undefined') bDraw = true;
if(bDraw) this.fnDraw();
}
});
});
Agora a página não está atualizando, o código também não está funcionando. O console mostra apenas a mensagem até o botão de pós-clique no botão.
Há algo de errado com esse código?
Muito obrigado pela resposta. Conforme sua sugestão, atualizei meu código (usei o evento de clique no botão fora do$(document).ready(function()
)
$(document).ready(function(){
$.fn.dataTableExt.oApi.fnResetAllFilters = function (oSettings, bDraw) {
for(iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[ iCol ].sSearch = '';
}
$('.filter-term').remove();
oSettings.oPreviousSearch.sSearch = '';
if(typeof bDraw === 'undefined') bDraw = true;
if(bDraw) this.fnDraw();
}
} );
// button click event
$("button").click(function(e){
e.preventDefault();
// 'myDataTable' is the name you gave the datatable at initialisation - oTable or similar
table.fnResetAllFilters();
});
Isso ainda atualiza minha página no clique no botão, mas se eu pegar o botão, clique no evento dentro$(document).ready(function()
então eu recebo erro comotable.fnResetAllFilters();
não é uma função.table = $('#example').DataTable({
é assim que eu inicializo o Datatable.