我如何获得onChangeEvent _sooner_?

时间:2010-12-07 19:09:43

标签: javascript html gwt javascript-events

我正在使用GWT来监控TextArea的更改。当用户输入时,我会捕获KeyPressEvents并相应地更新我的逻辑。

但是,当用户使用鼠标更改TextArea的值(例如剪切和粘贴或拖动)时,我没有得到KeyPressEvents(当然)。我还是想立即更新。我尝试过ChangeEvents,但似乎只有在TextArea失去焦点时它们才会被解雇。

我可以监听所有ClickEvents,但有没有更合理的机制可以在textarea中的文本因任何原因发生变化后立即提醒我的代码?

2 个答案:

答案 0 :(得分:1)

您可以使用setTimeout:

var ta = document.getElementById("yourTextarea");
var value = ta.value;

function check() {
    if ( ta.value !== value ) {
        // value has changed
        value = ta.value;
    }
    setTimeout(check, 100);
}

check();

答案 1 :(得分:0)

似乎喜欢抓住粘贴&直接削减事件是最好的方式 - 没有“彻底改变”的事件。