JavaScript的按键事件得到的textarea的终值(JavaScript keypress

2019-08-16 22:56发布

我在想,如果有可能得到的最终结果keypress事件? 目前,我使用的keyup因为用户已完成文本编辑在texteara 它被激活,但我已经写了,做类似使用MooTools的图书馆的东西的方法:

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

然而,用专用钥匙诸如退格时,这方法是可怕的,或者如果用户选择使用CTRL + A && 退格在此情况下输入元素的值不会是“空字符串”。

我很好奇,因为我已经注意到谷歌的搜索引擎发送的XMLHttpRequest和变异的页面的 keyup事件触发。 此外,他们使用的输入设法克服我删除整个文本,同时还享受着奢华的问题keypress

谢谢!

Answer 1:

这将使其工作:

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

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

因此,您可以使用零超时充当产量。 这使浏览器的UI线程有机会更新输入的值。



文章来源: JavaScript keypress event get end value of textarea