почему событие onchange моего текстового поля срабатывает при размытии - не срабатывает при каждом набранном символе? - PullRequest
0 голосов
/ 15 июля 2010

Почему событие onchange моего текстового поля срабатывает при размытии, но не при каждом набираемом символе?

Я хочу получить весь введенный текст в текстовом поле по каждому типу с клавиатуры!

Но onchang e событие генерируется только при размытии!

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

Какое событие я должен использовать или как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 15 июля 2010

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

edit: вот пример, демонстрирующий, как работают эти 2 события.ввод в первое поле обновляет два других.

<table>
    <tr>
        <td>input</td>
        <td><input type="text" id="textin" /></td>
    </tr>
    <tr>
        <td>keydown</td>
        <td><input type="text" id="keydownout" /></td>
    </tr>
    <tr>
        <td>keyup</td>
        <td><input type="text" id="keyupout" /></td>
    </tr>
</table>
<script>

    var readbox = document.getElementById('textin');
    var keydownbox = document.getElementById('keydownout');
    var keyupbox = document.getElementById('keyupout');

    function keydownhandler(e) {
        keydownbox.value = readbox.value;
    }

    function keyuphandler(e) {
        keyupbox.value = readbox.value;
    }

    readbox.addEventListener('keydown', keydownhandler, false);
    readbox.addEventListener('keyup', keyuphandler, false);

</script>

(работает в Firefox / Chrome)

0 голосов
/ 15 июля 2010

Событие onkeyup срабатывает после введенного вами текста:

onkeyup='alert(document.getElementById("myTextBox").value);'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...