【问题标题】:GWT onFocus event not getting triggered on text boxGWT onFocus 事件未在文本框上触发
【发布时间】:2014-10-20 12:38:42
【问题描述】:

onFocus 事件未在文本框上触发。我有以下代码,我使用的是 GWT 2.6.0

当我在文本框上使用焦点处理程序时,它工作正常,但我也有浏览器事件,我无法触发焦点事件。以下是浏览器上的代码。

@Override
    public void onBrowserEvent( Context context, Element parent, String value, NativeEvent event,
            ValueUpdater<String> valueUpdater )
    {
        String eventType = event.getType();     

      if( BrowserEvents.FOCUS.equals( eventType ) )
        {
           //Do what you want on focus
        }

【问题讨论】:

  • 这是什么类型的文本框? HTML 的 &lt;input&gt; 或 GWT 的 TextBox

标签: gwt textbox onfocus


【解决方案1】:

您应该使用 GWT 提供的方法(为了您的方便):

textBox.addFocusHandler(new FocusHandler() {
    @Override
    public void onFocus(FocusEvent event) {
        //Do some operation onFocus event
    }
});

它是HasFocusHandlers 的一部分,由很多 GWT 的小部件实现。可以为鼠标、键盘、模糊等事件找到类似的处理程序。

为了完整起见:如果您需要在任何 Widget 上直接侦听 DOM ONFOCUS 事件,则需要首先使用适当的位/标志调用 sinkEvents 方法(或在您的小部件中覆盖它) .您可以在 Event 类中找到相关标志。

【讨论】:

  • 请看我对整数框使用相同的代码,并且它在那里正常工作。问题仅与文本框有关。
  • 看到我对整数框使用相同的代码(通过传递 从 GWT 的 ValueBox 扩展)并且它在那里正常工作。问题仅与文本框有关。
  • 请分享更多代码 - 你如何实例化你的文本框,你如何监听焦点事件等。你尝试过 FocusHandler 还是覆盖onBrowserEvent
  • 我正在覆盖 onBrowserEvent。
  • 我有两个地方要触发这个 onFocus 事件。在您给出的文本框上添加焦点处理程序时它工作正常,但在其他地方我正在覆盖浏览器事件并且它没有触发事件。我在问题中有更新代码。
猜你喜欢
  • 2012-07-02
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
相关资源
最近更新 更多