GWT TextBox обработчик изменения значения - PullRequest
1 голос
/ 22 марта 2012

У меня есть TextBox, который используется для поиска товаров в моем приложении. Этот TextBox должен выполнять поиск после ввода ключа пользователя по ключевым словам на TextBox или когда пользователь нажимает ENTER.

для более подробного объяснения этот TextBox работал подобно окну поиска Google's, в котором результаты поиска просматриваются сразу после ввода пользователя.

Я попробовал ValueChangeHandler, но событие будет запущено, только если TextBox потеряет фокус. я также пытался KeyPressEventHandler, но хочу запускать событие поиска только после того, как пользователь ввел ключевое слово, а не при каждом нажатии клавиши. Кто-нибудь может дать мне представление о том, как это сделать?

Я думал об использовании GWT Timer для запуска поискового события через определенное время. таймер будет работать только в том случае, если пользователь больше не будет вводить ключи к TextBox, но как я узнаю, что KeyPressEvent не сработало?

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Это работает для меня:

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

Вам нужно KeyUpEvent, KeyPressEventHandler всегда будет поздно ...

0 голосов
/ 23 марта 2012

Я проверил код обработчика нажатой клавиши и, в зависимости от него, выполнил какое-то действие.

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"
            } 
        }
    });
0 голосов
/ 22 марта 2012

Используйте KeyPressEventHandler или KeyUpEventHandler и проверьте, равен ли последний напечатанный символ пробелу. Я думаю, что вы можете получить ключ, который вызвал событие, от объекта события. В противном случае используйте метод getText () TextBox. Обновляйте результаты поиска только при обнаружении пробела или ENTER. Я знаю, что это не решит проблему, если пользователь перестает печатать после слова: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...