Похоже, что обработчик "oninput" вызывает функцию фильтра из области действия формы (document.forms [0]), а не глобально. Если вы проверите значение document.forms [0] .filter, он вернет тег ввода. Вам просто нужно убедиться, что имя функции отличается от имени ввода / идентификатора.
Это также означает, что вам не нужно каждый раз получать поле ввода по идентификатору, оно уже определено как this
<input type="text" id="filterField" oninput="filter(this.value)"/>