2012-03-22 2 views
1

내 응용 프로그램에서 제품을 검색하는 데 사용되는 TextBox이 있습니다. 이 TextBoxTextBox 또는 사용자가 ENTER 일 때 사용자 키를 검색 한 후에 키워드를 검색해야합니다.GWT TextBox 값 변경 처리기

더 설명 할 수 있도록이 TextBox은 검색 결과가 사용자 입력 후 즉시 표시되는 Google's 검색 상자처럼 작동했습니다.

나는 ValueChangeHandler을 시도했으나 TextBox의 초점이 해제 된 경우에만 이벤트가 시작됩니다. 나는 또한 KeyPressEventHandler을 시도했다. 그러나 모든 키를 누르는 것이 아니라 사용자가 키워드를 검색 한 후에 검색 이벤트를 발생시키고 싶다. 아무도 나에게 이걸하는 방법에 대한 아이디어를 줄 수 있습니까?

나는 특정 시간 후에 검색 이벤트를 발생시키기 위해 GWTTimer을 사용하려고 생각하고있었습니다. 타이머는 사용자가 더 이상 TextBox의 키 입력 키가 없어도 실행되지만, KeyPressEvent이 실행되지 않으면 어떻게 알 수 있습니까?

+0

GWT의 SuggestBox 사용을 고려 했습니까? 귀하의 요구에 맞게 수정해야하지만 TextBox – kroiz

답변

0

KeyPressEventHandler 또는 KeyUpEventHandler를 사용하여 마지막으로 입력 한 문자가 공백인지 여부를 확인하십시오. 이벤트 개체에서 이벤트를 시작한 키를받을 수 있다고 생각합니다. 그렇지 않으면 TextBox의 getText() 메서드를 사용하십시오. 공백이나 ENTER를 발견했을 때만 검색 결과를 업데이트하십시오. 나는이 사용자가

2

:-) 단어 후 입력을 멈춘 경우 이것은 나를 위해 작동 문제를 해결 doen't 알고 : 당신은 KeyUpEvent 필요

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

을 KeyPressEventHandler 항상 ... 늦을 것

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" 
      } 
     } 
    }); 
+0

보다 더 자세합니다. Enter 키를 누를 때만 검색하면 @july는 Google 즉시 검색 동작을 원합니다. 또한 솔루션은 동일합니다. – koma

+0

@july는 단어가 꽉 찼을 때만 검색을 시작하고 모든 키 - 클릭 후에는 검색을 시작하지 않음을 알았습니다. 또는 Enter 키를 누를 때 –

관련 문제