1

フォーム内の UI 要素の操作について少し学習しようとしています。私は2つのグラフィック要素を持っています。任意のもののリストを持つコンボボックスがあり、非常に基本的なフォームパネルがあります。私がやろうとしているのは、コンボボックスでクリックされたアイテムの内容をフォームの入力ボックスに渡すことです。コンボボックスで「cat」をクリックすると、フォームにanimal:catと表示されます...リスナーを追加しようとしていて、.onアプローチを使用してこれを実行しようとしましたが、それを取得できないようです。アドバイスやヒントは感謝します。

 Ext.onReady(function () {
// The data store containing the list of cool stuffz
var animals = Ext.create('Ext.data.Store', {
    fields: ['id', 'name'],
    data: [{
        "id": 'cat',
        "name": "mycat"
    }, {
         'id' : 'dog',  
        "name": "mydog"
    }, {
        'id' : 'sbBarGirls', 
        "name": "heartbreaking-man-eating-deathclaw"
    }
    //...
    ]
});

// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
id: 'combo',
width: 600,
    fieldLabel: 'Choose animal',
emptyText: 'dont select the last one',
store: animals,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'id',
    renderTo: Ext.getBody()
});
});

//関係のないコードはこちら..

 Ext.onReady(function(){

Ext.create('Ext.form.Panel', {
    title: 'Animal sanctuary, one animal per location  ',
    width: 300,
    bodyPadding: 10,

    style: 'background-color: #Fdd;',
    renderTo: Ext.getBody(),
        items: [{
    xtype: 'textfield',
    fieldLabel: 'animal:',
    name: 'myanimal'
    }]

});
});

私がやろうとしていたのは、リスナーをトリガーするコンボセレクションの1つでdomイベントのマウスダウンを使用することでしたが、それを機能させることができなかったようです。イベント/リスナータグが正しくない場合は申し訳ありません。

4

1 に答える 1

2

したがって、テキスト フィールドの ID を記述する必要があります。

{
    id: 'wild_but_very_good_animal',
    xtype: 'textfield',
    fieldLabel: 'animal:',
    name: 'myanimal'
}

コンボのリスナーを追加します。

Ext.create('Ext.form.ComboBox', {
    id: 'combo',
    width: 600,
    fieldLabel: 'Choose animal',
    emptyText: 'dont select the last one',
    store: animals,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'id',
    renderTo: Ext.getBody(),
    listeners: {
        'change': function(field, selectedValue) {
            Ext.getCmp('wild_but_very_good_animal').setValue(selectedValue);
        }
    }
});
于 2013-07-09T15:43:02.947 に答える