2011-06-25 15 views
2

我一直在尋找無處不在,但我無法找到我的問題的答案也許有人在這裏可以幫助我。ExtJS 4:在工具欄中使用文本輸入的問題(focusmanager我認爲)

我有一個面板,工具欄 的工具欄上有3項(按鈕,文本字段,按鈕) 這工作得很好,我可以按按鈕,我不能寫,編輯等,在文本字段...

但如果我更改爲:巴頓,組件,按鈕 而在我寫了一個HTML組件:「」

重點經理(也許別的東西......)踢...好..對於那些文本輸入來說不太好,我可以寫......但是我不能按退格鍵,如果我這樣做,什麼也沒有發生,也不能按下箭頭鍵......

有沒有辦法在文本輸入中禁用焦點管理器???或整個工具欄(我真的不需要它)

我試過「Ext.FocusManager.disable()」,但不起作用(也是Ext.FocusManager.enabled返回false .. 。所以也許這不是焦點管理器的真正缺點)

我已經將問題縮小到工具欄... 我創建了一個文本輸入的其他地方,所有的鍵都工作...我感動在工具欄中輸入相同的內容(使用jquery)...並且退格鍵和方向鍵停止工作...如果我將它移出,鍵將再次開始工作:S

我需要它作爲文本輸入,因爲我計劃使用隱藏當前輸入和隱藏的jQuery插件與其他輸入替換它......所以你看......就算我用文本框,文本字段將獲得隱藏和文字輸入會取代它沒有退格鍵和方向鍵的功能

任何幫助將不勝感激

Regards !!!!!!!!

回答

1

確定....

使用的xtype: '文本框' 有什麼奇怪的,我.... Ext.FocusManager.enabled 返回false ....

如果我這樣做一個Ext.FocusManager.enable();之後,一個Ext.FocusManager.disable(); 連的xtype:「文本框」停止與退格鍵和方向鍵的工作:O型

所以我猜的FocusManager事做....

反正我暫時解決了我的問題:P

我離開組件作爲文本框

 { 
      xtype: 'textfield', 
      name: 'emailsi', 
      id: 'emailsi', 
      labelStyle: 'width: auto', 
      labelWidth: 120, 
      width: 500, 
      fieldLabel: idioma.personasInvolucradas 
     } 

而當文本輸入被通過jQuery創建它適用display: none以前的文本框 所以...我恢復display:block並且還應用position: absolute; float: right; z-index: -1;以便它再次隱藏並且不會干擾佈局:P

最後,還原退格鍵和左/右箭頭鍵功能........

我創建jQuery的一個.focus()事件,像這樣:

   $('.textboxlist-bit-editable-input').focus(function(){ 
        $('#emailsi>div>input').css({display: 'block', 'z-index': '-2', position: 'absolute', float: 'right'}); 
        Ext.getCmp('emailsi').focus(); 
       }); 

基本上,我發現,只要原來的文本框具有焦點,我可以在文字輸入按退格:)(也有我應用css的東西,首先它在焦點事件之外,但是當工具欄被重新繪製時,文本字段可以返回到顯示:無)

如果有人有更好的解決方案,它將會非常受歡迎:D

R egards!

+0

我正在處理同樣的問題,你有沒有找到更好的解決方案? – limscoder

+0

@limscorder是我的解決方案...使用textfield組件,如果您使用默認組件,它們就像它們應該那樣工作,如果您需要簡單的,則同時創建,然後隱藏extjs文本框組件,並且在輸入文本焦點事件上,將foc返回到extjs textfield組件(如$('#myinput'))。 – figus