私はこのフィドルを持っています
今、要素に直接リスナーコードを書くと、それは機能します
それを適用した場合、それは機能しません
Ext.apply(cbox, {
listeners: {
'select': function (combo, record, index) {
alert(combo.getValue());
}
}
});
上記のコードは機能しません
私はこのフィドルを持っています
今、要素に直接リスナーコードを書くと、それは機能します
それを適用した場合、それは機能しません
Ext.apply(cbox, {
listeners: {
'select': function (combo, record, index) {
alert(combo.getValue());
}
}
});
上記のコードは機能しません
Ext.JS では、リスナーはコンストラクターに追加されるため、作成後にコンポーネントを構成することはできません。次のように、構成を個別に作成ComboBox
し、それに新しいリスナーのセットを適用して、ComboBox
拡張され た構成で を作成できます。
var comboConfig = {
id: 'searchInput',
fieldLabel: 'Search:',
enableKeyEvents: true,
submitEmptyText: false,
emptyText: 'search...',
valueField: 'abbr',
displayField: 'name',
width: '100%',
store: {
fields: ['abbr', 'name'],
data: [{
"abbr": "AL",
"name": "Alabama"
}, {
"abbr": "AK",
"name": "Alaska"
}, {
"abbr": "AZ",
"name": "Arizona"
}]
}
};
Ext.apply(comboConfig, {
listeners: {
'select': function (combo, record, index) {
alert(combo.getValue());
}
}
});
var cbox = Ext.create('Ext.form.field.ComboBox', comboConfig);
Ext.create('Ext.form.Panel', {
items: [cbox],
frame: true,
renderTo: Ext.getBody()
});
または、CDが指摘したように、関数でそれらを追加できon
ます:
cbox.on({
select: function(combo, record, index) {
alert(combo.getValue());
}
});