我有一个组合框。
我的要求是,每当我从组合中键入任何键时,该“键”的值就会从商店中过滤出来并设置为组合值。
示例:我在下拉列表中有这些值。
“ ABC”, 'ABBR', '蟋蟀', “足球”
在单击组合键后,如果我键入a
,则第一次设置“ ABC”值,第二次设置“ ABBR”值。
这是我的组合代码。
// The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
});
// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose State',
store: states,
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
editable : true,
renderTo: Ext.getBody()
});
现在,在这种情况下,当我键入任何键时,我将从列表中过滤出该值。但是我不仅要过滤,还希望设置值。
这就是我要尝试的。
listerners:{
keypress : function(me,e,eopts){
var store = me.getStore();
var key = e.event.key;
var data = store.data.items;
var results = [];
for(var i=0; i<data.length; i++){
if(data[i].index(key) == 0){
results.push(data[i]);
}
}
}
}
现在,所有从该键开始的值都存储在result中。但是我不知道如何将结果中的值设置为组合存储。
任何帮助都会很感激。