2014-12-05 279 views
1

你好,我想按鍵盤上的事件在鍵盤上輸入。我這樣做:按鍵導航,按鍵盤上的事件輸入鍵盤上的輸入

listeners: { 
    afterRender: function (thisForm, options) { 
     this.keyMap = Ext.create(
      'Ext.util.KeyMap', 
      this.el, 
      [ 
       { 
        key: 13, 
        fn: this.submitOnEnter, 
        scope: this 
       } 
      ] 
     ); 
    } 
}, 

submitOnEnter: function (e) { 
    if (e === 13) { 
     console.log('some event there!!!') 
    } 

}, 

但是當我按下回車沒有任何反應。

+0

你是否試圖將Keylistener添加到窗體或窗體域?你使用的是什麼版本的ExtJS?多一點的代碼會有所幫助。 – 2014-12-05 19:08:25

+0

我使用分機4.2.1 – user3045654 2014-12-08 12:00:55

回答

2

如果它是一個文本框或組合框或觸發或東西,你可以嘗試添加一個偵聽specialkey:

 listeners:{ 
      specialkey: function(f,e){ 
       if(e.getKey()==e.ENTER){ 
        console.log("I hit enter!"); 
       } 
      } 
     }, 

如果只是打輸入窗口上的任何地方,然後我沒有那麼肯定。類似的東西可能會起作用。

+0

是的,我需要聽衆在窗口上的任何地方 – user3045654 2014-12-08 11:57:27

+0

看看這傢伙的解決方案: http://existdissolve.com/2011/08/extjs-4-adding-an-app-wide-keystroke -shpping/ 他使用S鍵,但可以將其更改爲ENTER的編號。他也有「ctrl:true」,這意味着你必須按Ctrl S.刪除,如果你不想要它。 我把我的主應用程序的「init」函數中他的「啓動」部分的代碼。 – 2014-12-08 17:18:19