3

コンボボックスの選択に基づいてテキストフィールドのラベル属性を表示しようとしています。そのために、コンボボックスの変更リスナーを作成し、リスナーでコンボボックスの値をチェックしており、これに基づいてテキストフィールドの 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 に反映されていないことがわかります。ここで何かが恋しいですか?

ありがとう。

4

1 に答える 1

3

次のような変数でテキストフィールドを定義します

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/

于 2014-06-18T08:51:56.783 に答える