Старое значение при keypress/keydown

105
22 апреля 2021, 21:10

Есть вопрос уточнение для детального понимания события клавиши.

Подскажите, если мы запускаем такой код

<input onkeydown="this.nextElementSibling.innerHTML=this.value" type="text" placeholder="Вводите символы"> 
<b></b>

То только после второго нажатия начинаем видеть результат.

Но если мы запустим такой код

<input onkeydown="this.nextElementSibling.innerHTML= e.key" type="text" placeholder="Вводите символы">
<b></b>

То все сработает сразу.

У меня есть предположение, что при первом варианте, значение еще не успело записаться, в input. То есть запись в элемент происходит после срабатывания события.

Хотел узнать у более опытных так ли это?

Answer 1

input.addEventListener('keydown', () => { 
  console.log('Нажали, но не отпустили: ' + input.value); 
}); 
 
input.addEventListener('keyup', () => { 
  console.log('Отпустили: ' + input.value); 
});
<input id='input' onkeydown="this.nextElementSibling.innerHTML=this.value" type="text" placeholder="Вводите символы"> 
<b></b>

Так происходит, потому что на момент нажатия value элемента пустой.

Второй пример работает, потому что он возвращается значение нажатой кнопки, которое в момент нажатия(но ещё не отпустили) известно. Ему всё равно, что находится в value

READ ALSO
Создать запись клиента на свободное время MVC C#

Создать запись клиента на свободное время MVC C#

Как реализовать составление расписание тренера и запись клиента к этому тренеру на определённое время, учитывая, что 2 клиента не могут записаться...

114
Как программно запустить программу и отправить ей команду

Как программно запустить программу и отправить ей команду

С#/PascalABCNET - Как программно запустить стороннюю консольную программу и отправить ей команду так, чтобы она не закрывалась, а оставалась открытой...

124
Сравнение отрисовки UserControl и Window при перемещении

Сравнение отрисовки UserControl и Window при перемещении

У меня появилась потребность перетаскивания UserContol по родительскому Grid'yЗаметил что при перетаскивании контрола появляется задержка визуализации,...

110
Не удается найти часть пути к файлу

Не удается найти часть пути к файлу

Есть проект библиотеки в котором необхдимо хранить XML файлСтруктура такова:

102