Search code examples
gwtonkeypress

keyPressEvent.getCharCode() returning 0 for all special keys like enter, tab, escape, etc


My code:

@Override
public void onKeyPress(KeyPressEvent event)
{
    if (event.getCharCode() == KeyCodes.KEY_ENTER)
    {
        registerButton.click();
    }
}

This is attached to a TextBox, and it does fire when I press enter. event.getCharCode() is just zero, not 13. When I press tab, it's 0, and when I press escape, it's 0. Argh!

This was working properly yesterday, and something has changed somewhere else in the project to affect this - but I'm not sure what it could be. It really seems like no relevant changes have been made in the last day.

If instead I handle a KeyUpEvent, this works as expected.

I'm using GWT 2.1.0. Thanks for any ideas!


Solution

  • the KeyPressHandler is used for example for the SHIFT, CTRL, ALT keys.

    If you want to attach an event to another key you have to use KeyDownHandler.

    nameField.addKeyDownHandler(new KeyDownHandler() {
    
        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                Window.alert("hello");
            }
    
        }
    
    });