Запустить функцию при первом событии нажатия клавиши на входе

У меня есть 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>

JSFiddle

3 ответа

Решение

Я думаю, что проблема может быть в том, что onkeypress событие срабатывает до того, как значение будет вставлено.

Если вы хотите зафиксировать значение после нажатия клавиши, вы можете использовать onkeyup событие вместо этого и посмотреть, работает ли это лучше.

Вы можете попробовать это событие

onKeyUp="change()"

для получения дополнительной информации http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx

Я думаю, это потому, что значение просто устанавливается после отпускания ключа. Когда я попробую это с onkeyup работает

http://jsfiddle.net/j8B8b/2/

Другие вопросы по тегам