Как перехватить строку с помощью onkeydown до ее получения в текстовом поле - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь найти способ вставить более одного символа в текстовое поле html (тип ввода = текст), используя onkeydown или onkeypress, я НЕ заинтересован в onkeyup (это работает), поэтому, пожалуйста, не предлагайте мнеэто решение.Также я не интересуюсь Jquery, я не люблю его использовать.Мне нужно решение для работы со всеми браузерами.

Я могу сделать это, если вы наберете один символ, взяв символ события, но до сих пор я не могу получить группу символов из вставки(Ctrl + V) или с помощью мыши.

Вы можете посмотреть в меню поиска Facebook, которое показывает результаты автозаполнения, оно работает с событиями: onkeydown и onkeypress, и вы заметите, что вы получите результат, прежде чем отпустить палец,попробуйте вставить что-нибудь (более одного символа), и вы получите результат, прежде чем отпустить палец, как?Onkeypress и onkeydown не показывают первое, что вы вставляете или печатаете, потому что они происходят до того, как текст добавляется в текстовое поле.

Если вы хотите понять, чего я хочу больше, проверьте мой код ниже:

 <input type="text" id="targetTextField" onkeydown="CapturePastedString(this.id)" />



<script>
function CapturePastedString(id){

var targetTextField=document.getElementById(id);

// below I need to capture the pasted string like:
var pasted_string= function(){.....}

targetTextField.value=pasted_string;

}
</script>

Любая помощь была бы очень благодарна, потому что я давно пытаюсь, но пока не могу найти решение.

1 Ответ

0 голосов
/ 08 марта 2013

Попробуйте обработчик onkeydown, он работает. Вы можете получить код ключа оттуда, а затем ключ.

<input type="text" value="" onkeydown="alert(String.fromCharCode(event.keyCode));"/>

Обратите внимание, что, поскольку все символы на клавиатуре являются заглавными, вы также получите заглавную букву. Приведенный выше код будет отображать нажатой клавишу

...