2011-03-07 1 views
7

Java 및 Wicket을 사용하는 webapp에 대한 자동 완성 구성 요소를 작성하고 있습니다.wicket에서 AutoCompleteTextField의 onchange 이벤트 처리

사용자가 자동 ​​완성 목록 옵션 중 하나를 선택할 때 일부 코드를 실행하기 위해 onchange 이벤트를 처리 할 수있는 방법이 있습니까? AutoCompleteTextField에서이 작업을 시도했습니다.

 setOutputMarkupId(true); 
     add(new AjaxEventBehavior("onchange") { 
      @Override 
      protected void onEvent(AjaxRequestTarget target) { 
       System.out.println(getInput()); 
      } 
     }); 

그러나 getInput 메서드는 null을 반환합니다. :(
은 onchange를 이벤트에 반응하고 사용자가 입력 한 것을 읽을 수있는 방법이 있나요?

덕분에 시간과 지식 :

답변

7

onchange 이벤트는 경우에만 해고에 대한 포커스가 컴포넌트에서 멀리 이동합니다. (유니버설 브라우저/자바 스크립트입니다.)

대신 처리기를 onkeypress 이벤트에 연결해야합니다. 이 getValue()이 더 잘 맞는 너무 getInput()와 함께 작동하지만, 일반적으로 다소 높은 수준 (제대로 탈출하고 모델의 지원)하지만

add(new AjaxFormComponentUpdatingBehavior("onchange") { 

     @Override 
     protected void onUpdate(AjaxRequestTarget target) { 
      System.out.println("Value: "+field.getValue()); 

     } 
    }); 

: 당신이 필요로하는 무엇

AjaxEventBehavior하지만 AjaxFormComponentUpdatingBehavior 없습니다.

+1

흠 나는 그렇게 생각하지 않는다 ... 문제는 메서드가 호출되지 않았지만 wicket 구성 요소 AutoCompleteTextField가 null을 입력으로 반환한다는 것입니다. 어쨌든 나는 네가하는 말을 해 볼거야. –

+1

@Manuel Duh, 죄송합니다. 질문을 완전히 잘못 읽었습니다. – biziclop

+1

맞아, 고마워,하지만 지금은 또 다른 문제가있다. 시간이 있으시면이 질문을 확인하십시오. http://stackoverflow.com/questions/5226492/using-autocompletetextfield-in-wicket-without-string-as-the-generic-type –