GWT (event.getCharCode) behaves differently in IE and Firefox
Asked Answered
N

1

4

I was going through the tutorial available on GWT website for StockWatcher application and testing the application as described in Step4: Manage Events on the Client.

Below piece of code behaves differently in Firefox and IE7. In IE7 this works well, i.e. If I enter some junk characters in Text field and hit Enter "event.getCharCode() == KeyCodes.KEY_ENTER" line gets executed successfully and I could see an alert message. However this same line does not work, if I use Firefox.

When I use Firefox and press Enter, event.getCharCode returns some junk character. What am I doing wrong here? or is this expected behavior?

newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
          public void onKeyPress(KeyPressEvent event) {
            if (event.getCharCode() == KeyCodes.KEY_ENTER) {
              addStock();
            }
          }
        });
Netta answered 6/4, 2011 at 16:27 Comment(0)
R
9

Use a KeyUpHandler instead of a KeyPressHandler to catch non-character keys (like enter, escape, etc.). Call KeyUpEvent#getNativeKeyCode() to get the key code.

Respective answered 6/4, 2011 at 17:37 Comment(3)
If I replace KeyPressHandler with KeyUphandler, how will I retrieve the character code in case of KeyUpHandler? The KeyUpEvent does not have getCharCode().Netta
Ok I got that working by using event.getNativeKeyCode() method to get the character code associated with event. However, why KeyUpHandler works in this case and not KeyPressHandler?Netta
KeyPress is for key presses that result in actual character input. KeyUp and KeyDown also include non-printing keys.Respective

© 2022 - 2024 — McMap. All rights reserved.