2012-04-19 117 views
7

我想調用按鈕在文本框中輸入功能。ExtJS TextField在點擊外部按鈕後輸入按鍵

items: [ 
{ 
    xtype: 'form', 
    id: 'myForm', 
    items: [ 
    { 
     xtype: 'textfield', 
     id: 'myTextField', 
     listeners: { 
      specialkey: function(f,e){ 
       if(e.getKey() == e.ENTER){ 
        console.log('Spacial Key = Enter'); // It's working 
        // But i wanna click btnSearch button click event 
      } 
      } 
     } 
    } 
    ], 
    buttons: [ 
     { 
      text: 'Search', 
      id: 'btnSearch', 
      handlers: function(){ 
       // bla bla 
       // bla bla 
       // ... 
      } 
     } 
    ] 
} 
] 

var myform = Ext.getCmp('myForm'); 
myForm.getForm().submit() 

它的工作,但btnSubmit.click功能無法正常工作

回答

1
Ext.getCmp('btnSearch').focus(); 

我不認爲它,但其工作對我來說:)

感謝所有

1

這將是更容易地創建像doSearch()的方法,並呼籲從兩個處理此方法。

1

根據你的範圍,你可以試試這個:

Ext.getCmp("btnSearch").handler.call(Ext.getCmp("btnSearch").scope); 
+0

我嘗試過,但我用它等待我搜索並使用form.submit()函數。其點擊但不發送表單。但.focus()適用於我。謝謝 – 2012-04-27 15:51:04

1

此代碼的工作:

{ 
          fieldLabel : 'Password', 
          name : 'j_password', 
          inputType : 'password', 
          allowBlank : false, 
          listeners : { 
           'render' : function(cmp) { 
            cmp.getEl().on('keypress', function(e) { 
             if (e.getKey() == e.ENTER) { 
              submitform(); 
             } 
            }); 
           } 
          } 
    }