У меня есть требование, чтобы во входном текстовом поле на каждое введенное значение должно было произойти, а после ввода 6-го символа должен быть добавлен дефис к строке.Jquery keypress, keydown, keyup, вход не подходит моему требованию
Решения, которые я пытался и проблемы, с которыми я столкнулся, перечислены ниже:
KeyUp - Это прекрасно работает для обнаружения каждого введенного символа и добавление дефиса кроме того, что «он будет посылать только один ключ запись для длинного нажатия клавиши ". Пример: если я продолжаю долгое нажатие «9», значение в текстовом поле будет «999999999999», но событие keyup запускается только один раз.
keypress - он отлично работает для обнаружения каждого введенного символа и добавления дефиса, за исключением того, что «событие нажатия клавиши не вызывается в обратном пространстве». Пример: если я вхожу в backspace, у меня есть функция проверки правильности поля и удаления дефиса.
keydown - Я не получаю точное значение тока для каждой клавиши. Пример: если я ввожу «9» в поле, в событии keydown, я получаю только «» в качестве текущего значения. И я набираю «99», я получаю «9» в качестве значения поля. Из-за того, что при событии keydown значение не будет обновляться в поле.
вход - все работает нормально, за исключением того, что я не могу получить код ключа внутри этой функции. (Без которого я не могу обнаружить обратное пространство).
Итак, что должно быть сделано для того, чтобы
- работы с длинными нажатиями клавиш,
- обнаружения Backspace,
- текущее значение обновляется при нажатии клавиши,
работа в то же время.
В течение последних нескольких часов я продолжаю беспорядок, исследуя множество вещей. Наверное, это просто, но я не могу получить ответ. Ваша помощь будет оценена очень много. Заранее спасибо.
насчет '.На ('изменения', функция() {})'? –
Задерживает keydown решение для вашего случая использования: http://jsfiddle.net/whfppw0q/? –
Спасибо @ DarrenSweeney. Но функция «change» запускается только с размытием ввода. –