📡 Журнал событий focus/blur (onfocus / onblur) будет тут...
💡 Каждый раз, когда поле получает фокус (focus) или теряет (blur) — запись в лог. Демонстрирует работу .onfocus и .onblur.
🌊 3. Всплытие: focusin vs focusout + контейнер
События focusin и focusout всплывают, в отличие от focus/blur. Это удобно для делегирования.
🎨 Родительский контейнер (отслеживает focusin/focusout) — кликни в любое поле внутри:
💬 Здесь отобразится событие focusin/focusout (всплытие)
// focusin (всплывает) — отличный способ отслеживать фокус на многих элементах
container.addEventListener('focusin', (e) => {
console.log(`фокус на: ${e.target.tagName}`);
});
// onfocus не всплывает, но можно использовать onfocusin (нестандарт) — лучше addEventListener.
🧩 4. Кастомный элемент с визуальной обратной связью (onfocus + классы)
🌟 Фокус: нет
⏳ Не было фокуса
* Нажмите Tab или кликните по кнопке
⚙️ 5. Программный вызов .focus() и сценарии автокоррекции
Метод .focus() устанавливает фокус на элементе. Часто используется при валидации или навигации.
👉 Используйте кнопки для теста .focus()
📖 Что такое JavaScript onfocus?
onfocus — это обработчик события, который выполняется, когда элемент получает фокус (например, через клик мыши, клавишу Tab или программно). Чаще всего используется с элементами формы: <input>, <textarea>, <select> и любыми элементами с атрибутом tabindex.
✔ onfocus — не всплывает, но можно использовать addEventListener('focus', ...)