2013-02-15 61 views
0

讓我們來談談GXT v3字段。GXT字段值更新onblur

有兩種幀& B.

框架A有一組字段和一個提交按鈕SA。提交按鈕讀取幀A中的字段。 幀B只有一個提交按鈕SB,它讀取幀A中的字段。

執行以下步驟。

  1. 在幀A上的區域框架中的一個將數據輸入場F1
  2. 點擊或點擊提交框架A.
  3. 調試在F1 getCell(按鈕)將表明,它有一個值。

執行以下備用步驟。

  1. 在幀A.在幀B.將數據輸入場F1
  2. 點擊按鈕
  3. 調試在F1 getCell()將顯示它不具有價值。

這對我來說是有問題的。因此,我想知道點擊按鈕SA和按鈕SB之間幀A中字段的onblur動作的區別。

當單擊框架A時,Field F1的onblur會執行什麼操作,點擊框架B時Field F1的onblur不會執行?

如果我知道這種差異,那麼我將能夠執行這種差異。

+1

當你說'框架',你的意思是GWT小部件框架(即iframe)?如果是這樣,您可能會遇到瀏覽器自身的跨框架焦點問題 - 可能值得驗證的是,通過關注另一個框架中的某些內容,可以解決常規的DOM更改或模糊事件。 GXT字段(至少是基於''的字段)將這些事件關閉以清除用戶的值 - 如果瀏覽器尚未告知JS,它不能告訴你。最後一個想法是:有些字段支持'getCurrentValue()'直接讀取和解析dom中的數據 - 可能值得一試。 – 2013-02-15 05:47:12

回答

0

該解決方案很簡單。

沖洗字段值之前只需選擇在框架A.

public void focusA(){ 
    frameA.getField1().focus(); 
    frameA.getField2().focus(); 
    frameA.focus(); 
} 

幀B中的按鈕單擊處理程序應該調用focusA()的任何兩個字段。

什麼focusA()的作用是

  • 專注於其他領域將觸發從DOM更新字段編輯器價值的,除現場被聚焦。
  • 在這種情況下,觸發另一個隨機字段觸發第一個字段的更新。
  • 然後通過關注容器來防止焦點粘在最後一個焦點區域(以防止用戶無意中編輯區域)。