6

我正在使用两个标签面板(例如T1T2)。它们是T2中的两个文本字段和提交按钮,如图所示:

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);

我的问题:

从T1设置文本字段的值时不会触发 keyup 事件侦听器

请帮我解决这个问题。
任何帮助表示赞赏。谢谢。

4

2 回答 2

4

您应该使用更改事件而不是 keyup

于 2013-05-15T13:54:18.810 回答
3

出于历史原因,我发布此信息。也许它对使用遗留 Extjs3 的开发人员会派上用场(我仍在为 Extjs 3.4 编写代码)。

要在文本字段上启用keyupkeypress事件,请添加enableKeyEvents

xtype:           'textfield',
enableKeyEvents: true,

默认:

keypress( this, e )
按键输入字段事件。仅当 enableKeyEvents 设置为 true 时才会触发此事件。

keyup( this, e )
Keyup 输入字段事件。仅当 enableKeyEvents 设置为 true 时才会触发此事件。

于 2015-05-25T13:13:50.553 回答