top searching lenguaje inputs individual filtros español column javascript jquery html datatables

javascript - searching - jquery datatable column filter on top



¿Cómo hacer un filtrado personalizado en Datatables con valores separados por comas? (1)

DataTables parece dejar de llamar a search() internamente si se filtran todas las filas (probablemente haya otras razones). Podría lograr la funcionalidad off() todos los enlaces y activando el filtro mediante programación; si tiene un filtro personalizado, puede invocarlo mediante draw() :

initComplete: function() { $(''.dataTables_filter input'').off().on(''keyup'', function(e) { table.draw() }) }

Esto también le da la posibilidad de filtrar solo cuando el usuario ingresa enter :

if (e.which == 13) table.draw()

Entonces solo devuelve verdadero si hay una coincidencia, y un chequeo de cordura también es una buena idea: obama, dará dos índices en la matriz, y todo coincide con una cadena vacía:

$.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { var search = $(''.dataTables_filter input'').val().toLowerCase().split('',''); var node = table.cell({ column: 0, row: dataIndex }).nodes().to$(); var text = node.find(''b'').text(); text += node.find(''[name$=locationId] option:selected'').text() text += node.find(''[name$=empRole] option:selected'').text(); text = text.toLowerCase(); for (var i=0, l=search.length; i<l; i++) { if (search[i].trim() != '''' && text.indexOf(search[i]) >-1) return true } return false; })

No estoy seguro si esta es la solución más brillante; o si funciona como se espera en su escenario de la vida real, pero al menos devuelve filas correctas para obama, , obama, trump , trump, obama , obama, test etc.

violín actualizado -> https://jsfiddle.net/1rde0nbm/16/

Estoy usando Datatables para mostrar los datos de la tabla en mi página JSP. He habilitado la funcionalidad de búsqueda en mi datatable.

Aquí está mi violín

Quiero permitir que el usuario use "," (valores separados por comas) en el cuadro de búsqueda y quiere que la coma sea tratada o OR. Intenté implementarlo pero tan pronto como ingresé "," las cosas no funcionaron. ¿Qué cambio debería hacer para lograr la funcionalidad requerida?

$.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { var search = $(''.dataTables_filter input'').val().toLowerCase(); var inputArray=search.split(","); var node = table.cell({ column: 0, row: dataIndex }).nodes().to$(); var text = node.find(''b'').text(); text += node.find(''[name$=locationId] option:selected'').text() text += node.find(''[name$=empRole] option:selected'').text(); for(var i=0;i<inputArray.length;i++){ return text.toLowerCase().indexOf(inputArray[i])>-1; } return false; })