2011-11-27 2 views
0

사용자가 TextBox 또는 TextArea에 데이터를 입력 할 때 특수 문자 (예 : 'A')를 다른 문자 (예 : 'B')로 바꾸려고합니다. 나는 그것이 (GWT의 문서에 따라) 확인을해야한다고 생각
GWT - 기본 KeyPressEvent가 작동하지 않습니다?

public void onKeyPress(KeyPressEvent event) {  

    if (event.getNativeEvent().getCharCode() == 65 /*for 'A'*/){    
     event.preventDefault(); 
     NativeEvent event1 = 
     Document.get().createKeyPressEvent(false, false, false, false, 66 /* for 'B'*/);       
     DomEvent.fireNativeEvent(event1, theTextBox);  
}   

있지만, 사실 그것은 단지 event.preventDefault(); 때까지 일을하고 나머지는 무시 보인다 : 내 코드는 다음과 같다. 나는 단지 'A'를 제거하지만 'B'에 대해서는 실행하지 않는다는 것을 의미합니다. 아무도 그 이유를 말해 줄 수 있습니까? 또는 다른 솔루션?
감사합니다.

+0

야생 추측 : 'fireNativeEvent' 다음에'preventDefault'를 움직여 보셨습니까? –

+0

@Darthenius 귀하의 추측에 힘 입어 Firefox 충돌이 발생합니다. 편집기 동작을 구현하려는 방식을 변경했습니다. 키 누르기에서 새 이벤트를 발생시키는 대신 텍스트 상자 값 ('getValue()')을 얻고, 입력 된 문자를 새로운 것으로 바꾸고'setValue()'를 호출합니다. 감사. – Hamzeh

답변

0

KeyPressHandler에서 KeyDownHandler으로 전환하려고합니다.

public void onKeyDown(KeyDownEvent event) { 
    if(event.getNativeKeyCode() == 65) { 
     //do the character replacement here 
    } 
} 

희망이 있으면 도움이 될 것입니다.

관련 문제