<ENTER> 防止从建议框冒泡

  • 本文关键字:ENTER gwt event-handling
  • 更新时间 :
  • 英文 :


我想防止当用户按 Enter 在 SuggestBox 中选择建议时,此 Key 事件正在冒泡。

我在包装Composite中有以下代码:

    Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(NativePreviewEvent event) {
            if (event.getTypeInt() == Event.KEYEVENTS) {
                int key = event.getNativeEvent().getKeyCode();
                if (key == KeyCodes.KEY_ENTER) {
                    event.cancel();
                }
            }
        }
    });

但从不调用此处理程序。

我不知道为什么你的方法不起作用。但我有另一种方法。为建议框添加密钥事件侦听器。如果按下回车键,请取消事件的传播。

suggestBox.addKeyPressHandler(new KeyPressHandler() {
        @Override
        public void onKeyPress(KeyPressEvent event) {
            int key = event.getNativeEvent().getKeyCode();
            if (key == KeyCodes.KEY_ENTER) {
                event.stopPropagation();
            }
        }
});

这对我来说效果更好:

suggestBox.addKeyPressHandler(new KeyPressHandler() {
            @Override
            public void onKeyPress(KeyPressEvent event) {
                int key = event.getNativeEvent().getKeyCode();
                if (key == KeyCodes.KEY_ENTER) {
                    event.getNativeEvent().preventDefault();
                }
            }
        });

@Jen,

此代码限制文本区域中"Enter"键的操作(如果 suggestBox 与文本区域关联),即使未显示建议列表也是如此。

当我的建议列表显示时,按"ENTER"键触发了事件处理程序addSelectionHandler(),我想停止传播(addKeyPressHandler事件处理程序不应该被触发)

相关内容

  • 没有找到相关文章

最新更新