const debounce = (func, timeout = 1500) => { let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, timeout); }; }; const taskInputs = document.querySelectorAll(".tasks form.task input"); taskInputs.forEach((taskInput) => { taskInput.addEventListener( "change", debounce((event) => { const inputElement = event.target; inputElement.form.submit(); }), ); });