2013-05-15 31 views
3

我正在使用兩個tabpanels(例如,T1T2)。他們有兩個文本框,並在T2提交按鈕,如圖所示:沒有在setValue()文本域上觸發keyup事件

xtype: 'form', 
title: 'Search', 
id:'searchref',       
items: [ 
    { 
     xtype: 'textfield', 
     fieldLabel: 'reference1', 
     id:'reference1',  
     enableKeyEvents:true, 
     listeners:{ 
      keyup:function(){ 
       Ext.getCmp('Submit').enable(); 
       Ext.getCmp('reference2').disable(); 
       if(Ext.getCmp('reference1').getValue() == "") 
       { 
        Ext.getCmp('Submit').disable(); 
        Ext.getCmp('reference2').enable(); 
       }              
      } 
     } 
    }, 
    { 
      xtype: 'textfield', 
      fieldLabel: 'reference2', 
      id:'reference2',  
      enableKeyEvents:true, 
      listeners:{ 
       keyup:function(){ 
        Ext.getCmp('Submit').enable(); 
        Ext.getCmp('reference1').disable(); 
        if(Ext.getCmp('reference2').getValue() == "") 
        { 
         Ext.getCmp('Submit').disable(); 
         Ext.getCmp('reference1').enable(); 
        }              
       } 
      } 
     }, 

    { 
     xtype: 'button', 
     text: 'Submit', 
     disabled:true, 
     id:'Submit',        
    } 
] 

在我T1,我嘗試做如下所示:

Ext.getCmp('tabpanel').setActiveTab(1); 
Ext.getCmp('reference1').setValue(RefNo); 

我的問題:

keyup事件偵聽器沒有被設置爲從設置文本字段的值被觸發T1

請幫我解決這個問題。
任何幫助表示讚賞。謝謝。

+0

如果你調用setValue,它爲什麼會觸發'keyup'事件? 'keyup'只在用戶輸入框中時觸發。 –

回答

2

你應該使用變更事件,而不是KEYUP

+0

非常感謝,它解決了。 – Dev

1

我張貼這種歷史原因的。也許它對於開發傳統Extjs3的開發者會派上用場(我仍在爲Extjs 3.4編寫代碼)。

要啓用textfiels keyupkeypress事件,添加enableKeyEvents

xtype:   'textfield', 
enableKeyEvents: true, 

默認:

按鍵(這一點,E)
按鍵時輸入字段事件。如果enableKeyEvents設置爲true,則此事件纔會觸發。

KEYUP(此,E)
KEYUP輸入字段事件。如果enableKeyEvents設置爲true,則此事件纔會觸發。

+1

這解決了這個問題。好的答案。 – Mahder