首页 > 解决方案 > 如何在 extJS 组合框中设置 store 的特定索引值

问题描述

我有一个组合框。

我的要求是,每当我从组合中键入任何键时,该“键”的值都会从存储中过滤并设置为组合值。

示例:我在下拉列表中有这些值。

“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]);
            }
        }
    }
}

现在,从该键开始的所有值都存储在结果中。但我不知道如何将该值从结果设置为组合存储。

任何帮助将不胜感激。

标签: javascriptextjscombobox

解决方案


推荐阅读