GWT TextBox值更改处理程序

时间:2012-03-22 09:41:34

标签: gwt textbox

我有TextBox,用于在我的应用中搜索产品。这个TextBox应该在用户关键字TextBox或用户点击ENTER后进行搜索。

为了能够进一步解释,此TextBox的工作方式类似于Google's搜索框,其中在用户输入后立即查看搜索结果。

我尝试了ValueChangeHandler,但只有在TextBox失去焦点时才会触发事件。我也尝试了KeyPressEventHandler但我想只在用户键入关键字后触发搜索事件,而不是每次按键时触发。任何人都可以告诉我如何做到这一点?

我在考虑使用GWT Timer在一段时间后触发搜索事件。只有当用户不再使用TextBox的键入键时,计时器才会运行,但我怎么知道是否没有KeyPressEvent被解雇?

3 个答案:

答案 0 :(得分:2)

这对我有用:

@UiHandler("searchBox")
public void onKeyUpEvent(KeyUpEvent keyPress) {
   // do the search
}

你需要KeyUpEvent,KeyPressEventHandler总是迟到......

答案 1 :(得分:0)

使用KeyPressEventHandler或KeyUpEventHandler并检查最后输入的字符是否等于空格。我想你可以从事件对象接收触发事件的键。否则使用TextBox的getText()方法。仅在检测到空格或ENTER时更新搜索结果。我知道如果用户在单词后面停止输入,则无法解决问题: - )

答案 2 :(得分:0)

我检查了按下的键的处理程序代码,并根据它执行某些操作。

searchQueryTextBox.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent event) {
            if (event.getNativeKeyCode() == 13 || event.getNativeKeyCode() == 32) {
                //run a search. code 13 - key "Enter", code 32 - key "Space"
            } 
        }
    });