Запустить функцию при первом событии нажатия клавиши на входе
У меня есть input
элемент с onkeypress
событие, которое запускает функцию, change()
, Проблема в том, что функция не запускается при первом нажатии клавиши. Например, мне нужно набрать 55 вместо 5, чтобы получить функцию для обновления, и значение, которое она принимает, равно 5. Почему-то он не распознает самое последнее нажатие клавиши. Я пытался добавить другие события, такие как onfocus
а также onselect
, но безрезультатно. Вот код для input
:
<input id="x" type="text" size="1" maxlength="2" onkeypress="change()" onfocus="change()" onselect="change()" onblur="change()" onchange="change()"></input>
3 ответа
Я думаю, что проблема может быть в том, что onkeypress
событие срабатывает до того, как значение будет вставлено.
Если вы хотите зафиксировать значение после нажатия клавиши, вы можете использовать onkeyup
событие вместо этого и посмотреть, работает ли это лучше.
Вы можете попробовать это событие
onKeyUp="change()"
для получения дополнительной информации http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx
Я думаю, это потому, что значение просто устанавливается после отпускания ключа. Когда я попробую это с onkeyup
работает