2010-09-21 78 views
3

我有一個包含窗體(formPanel)的窗口。用戶可以在ExtJS環境中點擊一個按鈕來顯示這個窗口。我希望當用戶點擊按鈕來顯示窗口時,窗口包含的表單中的特定字段將會聚焦(這意味着光標應該移動到該字段,以便用戶可以插入數據而不需要首先點擊該領域)。ExtJS:焦點字段

我嘗試了一些解決方案,但無法讓它們工作。任何提示?

這是我嘗試過的,使用我發現的一些例子...但它不能按預期工作。此功能()是由ExtJS的按鈕,在我的界面稱爲:

function openCardForm(IDUser){ 

    //Reset the value of this field which may be still there from the prev. usage 
    Ext.getCmp('assignFormCARDNUMBER').reset(); 
    formAssignCard.getForm().load({ 
     url: 'gen/jsonUser.php', 
     params:{IDUser:IDUser}, 
     waitMsg: 'Loading...' 
    }); 
    //Try to focus the Card field when rendering the form 
    Ext.getCmp('assignFormCARDNUMBER').on("render",function(){ 
     Ext.getCmp('assignFormCARDNUMBER').focus(true,10); 
    }); 
    win.show(); 
} 

回答

4

試穿show代替。

+1

謝謝,這工作。實際上,我最終把新的處理程序放在插入窗體的窗口的顯示事件中。此外,我加入了一些延遲來聚焦元素,這似乎是必要的。聚焦代碼變爲:Ext.getCmp('assignFormCARDNUMBER')。focus(true,800); – Danilo 2010-09-22 11:17:12

1

你也可以嘗試在其配置選項中將字段的tabindex設置爲零......這種方式你甚至不需要添加偵聽器來檢測顯示事件。

即:

tabIndex:0 
+0

真的嗎?太棒了。謝謝你分享+1 – einarmagnus 2010-09-22 19:36:31

+0

這不行! – 2012-09-30 07:28:54

+0

應該指出,自從原始問題/答案以來,框架發生了實質性的變化 – SW4 2012-10-09 15:14:59

3

或使用

defaultButton : yourComponentToFocusOn 

有點混亂,但defaultButton可以是任何成分(不必是一個實際的按鈕)