Как отлавливать keydown вне input?

Помогите с проблемой:
Есть JS код который отлавливает нажатие кнопки "T", после этого указывает блоку display: inline;(когда тот был none)

Код сам по себе еще не до конца готов(но это не важно)
Проблема в том что на сайте есть еще input, и при вводе в нем текст(А именно нажатие клавиши "T"), активируется та функция.
Нужно сделать так что бы при вводе текста в input эта функция не срабатывала.

HTML:
<code lang="html">
<div id="chat" style="display: none;"><input type="text" name="chat"></div>
</code>
CSS:
<code lang="css">
#chat {
    position: absolute;
    bottom: 1px;
}
</code>
JS:
<code lang="javascript">
var varChat = document.getElementById("chat");
function pressKey(event) {
	var key = event.keyCode;
	if (key == 84) { // 27 is the ESC key
		chat.style.display = 'inline';
	}
	else if (key == 13) {
		chat.style.display = 'none'
	}
}
document.addEventListener('keydown', pressKey);
pressKey()
</code>
  • Вопрос задан
  • 219 просмотров
Решения вопроса 2
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
Смотреть на e.target, и если это инпут/textarea, то ничего не дклать
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Event.stopPropagation() на инпут.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы