如何在Ext Js 4中动态更改Textfield的fieldLabel?

时间:2013-06-07 14:10:56

标签: extjs

我正在尝试根据组合框选择显示文本字段标签属性。为此我为组合框和侦听器编写了一个更改侦听器,我检查了combox值并基于此我必须更改textfield的fieldLabel属性。以下是代码,

                         textfield:

                                 xtype:'textfield',
                                 id:'firstName',
                                 fieldLabel: 'Billing',
                                name: 'firstName',
                                maxLength: 30,
                                enforceMaxLength :true

组合框侦听器方法

listeners:{
                                    change:function(field, newValue, oldValue)
                                    {   
                                        if(newValue == "billing")
                                        {
                                           var firstName = Ext.getCmp('firstName');     
                                           firstName.fieldLabel = 'Billing'
                                        }
                                        else if(newValue == "shipping"){
                                            var firstName = Ext.getCmp('firstName');
                                             firstName.fieldLabel = 'Shipping'
                                        }
                                        else if(newValue == "recipient"){
                                            var firstName = Ext.getCmp('firstName');
                                             firstName.fieldLabel = 'Receipient'
                                        }
                                    }

在调试此代码时,我可以看到字段值分配给fieldLabel属性,但它没有反映在UI中。我想念一下吗?

感谢。

1 个答案:

答案 0 :(得分:2)

在像

这样的变量中定义文本字段
var tf = Ext.create('Ext.form.TextField',{
    fieldLabel: 'Billing',
    name: 'firstName',
    maxLength: 30,
    enforceMaxLength: true
});

然后在你的改变监听器中有这样的东西

tf.labelEl.update(newValue)

我可以在4.1.1上测试它,但不能在4.0.0上测试,但我认为它应该可行。这是工作示例的jsfiddle - http://jsfiddle.net/jaykhimani/xLn8p/