我正在通过 tutorial可在 GWT 网站上获取 StockWatcher 应用程序并按照步骤 4:在客户端管理事件中所述测试应用程序。
下面的代码在 Firefox 和 IE7 中的行为不同。在 IE7 中,这运行良好,即如果我在 Text 字段中输入一些垃圾字符并按 Enter "event.getCharCode() == KeyCodes.KEY_ENTER
"行会成功执行,我可以看到一条警报消息。但是,如果我使用 Firefox,同一行不起作用。
当我使用 Firefox 并按 Enter 时, event.getCharCode 返回一些垃圾字符。我在这里做错了什么?或者这是预期的行为?
newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if (event.getCharCode() == KeyCodes.KEY_ENTER) {
addStock();
}
}
});
最佳答案
使用 KeyUpHandler
而不是 KeyPressHandler
捕捉非字符键(如输入、转义等)。调用 KeyUpEvent#getNativeKeyCode()
获取关键代码。
关于GWT (event.getCharCode) 在 IE 和 Firefox 中的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5569803/