keyup事件未在textfield的setValue()上触发

时间:2013-05-15 13:47:03

标签: extjs extjs4

我使用两个tabpanels(例如 T1 T2 )。它们是两个文本字段,并在 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

设置textfield值时,没有触发keyup事件监听器

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

由于历史原因,我发布了此消息。也许对于使用传统Extjs3的开发人员来说它会派上用场(我还在为Extjs 3.4编写代码)。

要在textfiel上启用keyupkeypress个活动,请添加enableKeyEvents

xtype:           'textfield',
enableKeyEvents: true,

默认情况下:

  

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

  

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