Tengo este código que filtra la vida de la tabla usando los menús desplegables.
$(document).ready(function () { $('.filter').change(function () { var values = []; $('.filter').each(function () { var colIdx = $(this).data('col'); $(this).find('option:selected').each(function () { if ($(this).val() != "") values.push( { text: $(this).text(), colId : colIdx }); }); }); filter('table > tbody > tr', values); }); function filter(selector, values) {console.log(values); $(selector).each(function () { var sel = $(this); var tokens = sel.text().trim().split('\n'); var toknesObj = [], i; for(i=0;i<tokens.length;i++){ toknesObj[i] = { text:tokens[i].trim(), found:false }; } var show = false; //console.log(toknesObj); $.each(values, function (i, val) { if (toknesObj[val.colId].text.search(new RegExp("\\b"+val.text+"\\b")) >= 0) { toknesObj[val.colId].found = true; } }); console.log(toknesObj); var count = 0; $.each(toknesObj, function (i, val) { if (val.found){ count+=1; } }); show = (count === values.length); show ? sel.show() : sel.hide(); }); } }); Necesito una modificación para usar el mismo código, pero en lugar de un filtro de vida, use un botón Buscar para ejecutar el filtro. Tal vez el problema es el .change(function () pero no estoy seguro de cómo implementar la forma de usar el botón de búsqueda en lugar del filtro de vida.
Gracias
Reemplazar el selector antes del .change por una referencia del botón y cambiar el .change por un .click podría funcionar para su caso.
$(document).ready(function () { $('.button-selector').click(function () { ... }); ... });