Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как среагировать на нажатие enter в поле input типа text? (https://javascript.ru/forum/events/76428-kak-sreagirovat-na-nazhatie-enter-v-pole-input-tipa-text.html)

Jimmi 10.01.2019 16:19

Как среагировать на нажатие enter в поле input типа text?
 
Сейчас есть следующее:

Input
<input class="class-inputa" type="text">


И обработчик (который не работает) этого input(-a)
<script type="text/javascript">
	if(document.getElementsByClassName('class-inputa').onclick  == true)
	{
		alert("Ура!");
	}
</script>


Прекрасно понимаю, что могу делать, что-то не так. Потому обращаюсь к вам.

laimas 10.01.2019 16:27

Клавиши не создают события onclick.

document.getElementsByClassName('class-inputa')[0].onkeypress = function(e) {
    if(e.key=='Enter') alert('Enter')
}

Jimmi 11.01.2019 06:03

Цитата:

Сообщение от laimas (Сообщение 501715)
Клавиши не создают события onclick.

document.getElementsByClassName('class-inputa')[0].onkeypress = function(e) {
    if(e.key=='Enter') alert('Enter')
}

Отлично :victory: Спасибо. Enter сработало. Только вот еще одно дополнение. Этот же Input также срабатывает еще и на другое событие, а именно на нажатие кнопки. Которая реализована с помощью css, посредством псевдоэлемента :after. То есть в css это выглядит как: input.class-inputa:after {}

laimas 11.01.2019 06:53

Цитата:

Сообщение от Jimmi
Которая реализована с помощью css, посредством псевдоэлемента :after

Что за глупости, это задание стилей, а не срабатывание события, другое дело, что при каком либо событии полю добавляется класс class-inputa. Яснее надо выражаться, а не наводить тень на плетень. ;)

Jimmi 11.01.2019 07:21

Цитата:

Сообщение от laimas (Сообщение 501743)
Что за глупости, это задание стилей, а не срабатывание события, другое дело, что при каком либо событии полю добавляется класс class-inputa. Яснее надо выражаться, а не наводить тень на плетень. ;)

Я постарался объяснить как можно яснее. В HTML, поле input выглядит следующим образом:
<input class="class-inputa" type="text">

И все. Ни каких bottom(-ов) или submit(-ов). Но кнопка по нажатию, на которую происходит событие аналогичное вызванному enter(-ом), все таки есть. И реализована она именно посредством псевдоэлемента :after.
То есть этот самый псевдоэлемент работает вместо обычной кнопки. Можно ли как-нибудь попросить Javascript среагировать на элемент созданный посредством css :) ?

laimas 11.01.2019 08:33

Цитата:

Сообщение от Jimmi
происходит событие аналогичное вызванному enter(-ом), все таки есть. И реализована она именно посредством псевдоэлемента :after

Бред какой-то.


Часовой пояс GMT +3, время: 01:27.