Hier ist ein Beispiel für die Schaltflächen:
Code: Select all
ABC
DEF
GHI
Bei der ersten Variante liegt das Problem dass der aktive Zustand der Schaltflächen nicht entfernt wird, wenn das Eingabefeld manuell bearbeitet wird.
Code: Select all
function filterTable(button) {
const buttons = document.querySelectorAll('button');
buttons.forEach(btn => btn.classList.remove('active'));
button.classList.add('active');
const data = button.getAttribute('data');
const searchInput = document.querySelector('.form-control.form-control-sm[type="search"]');
searchInput.value = data;
searchInput.dispatchEvent(new Event('input'));
}
Code: Select all
function filterTable(button) {
const buttons = document.querySelectorAll('button');
buttons.forEach(btn => btn.classList.remove('active'));
button.classList.add('active');
const data = button.getAttribute('data');
const searchInput = document.querySelector('.form-control.form-control-sm[type="search"]');
searchInput.value = data;
searchInput.dispatchEvent(new Event('input'));
searchInput.addEventListener('input', () => {
buttons.forEach(btn => btn.classList.remove('active'));
}, { once: true });
}