JavaScript keypress事件获取textarea的结束值

时间:2013-02-12 21:00:50

标签: javascript javascript-events mootools keypress keyboard-events

我想知道是否有可能在keypress事件中获得最终结果? 目前,我正在使用keyup,因为在用户在texteara中进行了文本编辑后,它已被激活,但我编写了一个使用Mootools库执行类似操作的方法:

input.addEvent("keypress", function (input) {
    var previous_result = this.value;
    var end_result = this.value + input.key;
});

然而,当处理退格键等特殊键时,或者如果用户选择使用 CTRL + a && Backspace 在这种情况下,input元素的值不是“空字符串”。

我很好奇,因为我观察到Google的搜索引擎发送XMLHttpRequest并在触发keyup事件之前改变页面。 此外,他们使用的输入可以克服我删除整个文本的问题,同时仍然享受keypress的奢侈。

谢谢!

1 个答案:

答案 0 :(得分:9)

这将使其有效:

input.addEvent( "keypress", function ( input ) {    
    setTimeout(function () {
        input.value // returns the updated value
    }, 0 );    
});

现场演示: http://jsfiddle.net/yQQ5P/(我使用内置API,因为我不知道Mootools)

因此,您使用零超时作为收益。这为浏览器的UI线程提供了更新输入值的机会。