2014-10-20 48 views
1

onFocus事件未在文本框上觸發。我有下面的代碼,我使用GWT 2.6.0未在文本框上觸發GWT onFocus事件

當我在文本框上使用焦點處理程序,然後它的工作正常,但我也有瀏覽器事件,我不能觸發焦點event.Below是代碼在瀏覽器上。

@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 
     } 
+0

它是什麼樣的文本框? HTML的''或GWT的'TextBox'? – 2014-10-20 12:45:55

+0

它的GWT文本框 – Ganesh 2014-10-20 12:49:18

回答

1

你應該使用GWT提供的(你放心)方法:

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

它是由相當多的GWT的小部件的實施HasFocusHandlers的一部分。類似的處理程序可以找到鼠標,鍵盤,模糊等事件。

爲了完整起見:如果您需要直接在DOM ONFOCUS事件監聽任何Widget,你需要用合適的位/標誌首先調用sinkEvents方法(或你的widget覆蓋它)。您可以在Event類中找到相關標誌。

+0

看到我使用相同的代碼整數框,並在那裏正常工作。問題僅限於文本框。 – Ganesh 2014-10-20 13:00:38

+0

看看我使用相同的代碼整數框(通過傳遞 GWT的ValueBox擴展),並在那裏正常工作。問題僅限於textBox。 – Ganesh 2014-10-20 13:08:46

+1

請分享一些代碼 - 你如何實例化你的TextBox,你如何聽重點事件,等等。你嘗試過一個FocusHandler或者你是否覆蓋'onBrowserEvent'? – 2014-10-20 13:30:58