Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый Сегодня, 12:15
Новичок на форуме
Отправить личное сообщение для Egoritch Посмотреть профиль Найти все сообщения от Egoritch
 
Регистрация: 01.10.2026
Сообщений: 2

Не срабатывает addEventListener
Здравствуйте, уважаемые. Прошу вашей помощи. Я - "начинающий", только учусь. И тут уже на сутки подвис. Всё должно работать, но не работает. Суть какая. Разбираюсь с WinBox.js и создается окно (winbox) в котором есть несколько input-text. И я хочу при вводе текста в один из них, получать ответ от сервера, есть ли такой логин и во втором отображать результат. Примеров много. Вот есть первый и второй (и кнопка button):

const input = document.getElementById('username');
  const resultDiv = document.getElementById('surname');
  const button = document.getElementById('myButton');

  alert("1: " + input.name);
  alert("2: " + resultDiv.name);
  alert("Button: " + button.name);

Все три алерта показываются. То есть, скрипт отрабатывается и такие объекты есть. Но дальше я вешаю обработчик на кнопку и обработчик на input:
button.addEventListener('click', function() {
		alert('Кнопка нажата!');
	});

и, соответственно, на ввод текста:
input.addEventListener('input', function(event) {
	  alert("777");
  });

Так вот на нажатие на конку alert есть, а на ввод текста - просто никакого нет. Это я удалил код оттуда, там всё стандартно. Оба input - простые стандартные:
<input type="text" id="username" name="username" autocomplete="username">
<input type="text" id="surname" name="surname">


Почему на работает Listener на ввод текста? Что может быть? Заранее благодарен вам за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый Сегодня, 12:50
Новичок на форуме
Отправить личное сообщение для Egoritch Посмотреть профиль Найти все сообщения от Egoritch
 
Регистрация: 01.10.2026
Сообщений: 2

Закрываем тему. ChatGPT помог.

Цитата:
Вот! í ½í±� Тогда мы уже точно локализовали проблему.

Ваш input сам по себе исправен. Проблема в том, что обработчик, повешенный непосредственно на элемент:
input.addEventListener('input', ...)


Цитата:
не получает событие в вашей конструкции с WinBox, а событие всплывает до document.

Поэтому делегирование:
document.addEventListener('input', function(event) {
    if (event.target.id === 'username') {
        alert('777');
    }
});


Цитата:
работает.
Всем, кто думал, как помочь - большое спасибо!
Ответить с цитированием
Ответ

« поиск в json | - »

Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер срабатывает раньше времени или вообще не срабатывает Terebonko Элементы интерфейса 6 03.08.2017 12:43
addEventListener не срабатывает? ViRuSreloaded Элементы интерфейса 11 13.11.2014 11:33
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 01:07
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39