为什么我的文本框的onchange事件在模糊时触发 - 不会被每个打字的角色触发?

时间:2010-07-15 03:11:42

标签: javascript asp.net events text textbox

为什么我的文本框的onchange事件会触发模糊,但不会被每个键入的字符触发?

我想通过键盘按照每种类型在文本框中输入整个文本!

onchang事件仅在模糊时触发!

除了onkeyup - onkeypress - onkeydown事件之外没有帮助,因为首先触发这些事件,然后将最后输入的字符应用于文本框。

我应该使用什么事件或者我该怎么做?

2 个答案:

答案 0 :(得分:3)

你想要keyup,keydown或它们的组合。在keydown处理程序中,您可以获取文本框的事件前值。在keyup处理程序中,您可以获取事件后的值。如果你得到一个空字符串,你做错了。

编辑:这是一个展示这两个事件如何运作的例子。在第一个框中输入更新另外两个。

<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)

答案 1 :(得分:0)

onkeyup事件在 输入文字后触发

onkeyup='alert(document.getElementById("myTextBox").value);'