keyPressEvent.getCharCode()为所有特殊键返回0,如enter,tab,escape等

Ril*_*ark 32 gwt onkeypress

我的代码:

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

这是附加到TextBox,当我按Enter键时它会触发. event.getCharCode()只是零,不是13.当我按Tab键时,它就是0,当我按下escape时,它就是了0.哎呀!

昨天这个工作正常,项目中其他地方发生了一些变化,影响了这一点 - 但我不确定它是什么.看起来好像在最后一天没有做出相关的改变.

如果我处理a KeyUpEvent,这可以按预期工作.

我正在使用GWT 2.1.0.谢谢你的任何想法!

Mic*_*aël 38

KeyPressHandler用于例如用于SHIFT,CTRL,ALT密钥.

如果要将事件附加到必须使用的另一个键KeyDownHandler.

nameField.addKeyDownHandler(new KeyDownHandler() {

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

    }

});
Run Code Online (Sandbox Code Playgroud)


小智 9

或者你可以试试这个

if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
}
Run Code Online (Sandbox Code Playgroud)

  • 尽管被提问者选中,但这不是问题最完整,最正确的答案.用户可以使用@Michaël提供的跨浏览器功能的答案,而不是使用它. (2认同)