Как сделать, чтобы по вводу в инпут одного символа (любого) функция отрабатывала один раз?

сейчас отрабатывает постоянно ( видно по консоли)

document.querySelector('input').addEventListener('keydown', function() {
  console.log('test');
})
<input type="text">


Ответы (2 шт):

Автор решения: Алексей Шиманский

Предположу что нужен keyup

document.querySelector('input').addEventListener('keyup', function() {
  console.log('test');
})
<input type="text">

→ Ссылка
Автор решения: UModeL

Однократное срабатывание функции достигается передачей в третьем аргументе обработчика объекта options с ключом once и значением true:

document.querySelector('input').addEventListener('keydown', function() {
  console.log('test');
}, { once: true })
<input type="text">

Если же нужно, чтобы действие происходило однократно, но каждый раз при вводе первого символа, то необходимо добавить простейшее условие:

document.querySelector('input').addEventListener('keydown', function() {
  if (this.value == '') console.log('test');
})
<input type="text">

→ Ссылка