Javascript 如何获取extjs组合框上的值?

Javascript 如何获取extjs组合框上的值?,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我有一个关于组合框的代码,如何获取在组合框中选择的值,并将该值加载到变量中,然后在以后使用它 多谢各位 Ext.define('Column', { extend: 'Ext.data.Model', fields: ['data1', 'Data2'] }); var store = Ext.create('Ext.data.Store', { model: 'Column', autoLoad: true, proxy: { type

我有一个关于组合框的代码,如何获取在组合框中选择的值,并将该值加载到变量中,然后在以后使用它

多谢各位

Ext.define('Column', {
    extend: 'Ext.data.Model',
    fields: ['data1', 'Data2']
});

var store = Ext.create('Ext.data.Store', {
    model: 'Column',
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: '/data.xml',
        reader: {
            type: 'xml',
            record: 'result'
        }
    }
});

var simpleCombo = Ext.create('Ext.form.field.ComboBox', {
    store: store,
    displayField: 'data1',
    valueField: 'data1',
    width: 250,
    labelWidth: 120,
    fieldLabel: 'select a value',
    renderTo: 'simpleCombo',
    queryMode: 'local',
    typeAhead: true
});

只需使用select事件

var simpleCombo = Ext.create('Ext.form.field.ComboBox', {
            store: store,
            displayField: 'data1',
            valueField: 'data1' ,
            width: 250,
            labelWidth: 120,
            fieldLabel: 'select a value',
            renderTo: 'simpleCombo',
            queryMode: 'local',
            typeAhead: true,
            listeners: { 
               select: function(combo, records) {
                   // note that records are a array of records to be prepared for multiselection
                   // therefore use records[0] to access the selected record
               }
        });

评论中的其他内容:

看看combobox的属性。您将获得由定义的分隔符分隔的所有值,select事件将为您提供一个包含多条记录的记录数组。请注意,getValue()只提供定义的displayField,它是一个字符串,而不是记录本身。因此,使用iComboValue[0]可以得到第一个字符。应始终使用所选事件访问所选记录。但您可以将它们存储在阵列中供以后使用,并使用任何新选择覆盖它。

您也可以使用:

var iComboValue = simpleCombo.getValue();

也许你应该试试这个

 // to get the combobox selected item outside the combo listener
        simpleCombo.on('change', function (combo, record, index) {

            alert(record);  // to get the selected item

            console.log(record);  // to get the selected item

        });

您使用的Ext版本是什么?@sitifensys基于Ext.define&Models的使用,它必须是4.xThanks的某个版本。我使用了记录[0],但出现错误。但是当我尝试使用var iComboValue=simpleCombo.getValue()时;Ext.Msg.alert('您好,这是标题',iComboValue)。这对我有用。如果我使用iComboValue[0],它只给出选择选项的第一个字母。如何进行多次选择,然后存储这些选定值?Thanks@shiro看看combobox的属性。您将获得由定义的分隔符分隔的所有值,select事件将为您提供一个包含多条记录的记录数组。请注意,getValue()只提供定义的displayField,它是一个字符串,而不是记录本身。因此,使用iComboValue[0]可以得到第一个字符。应始终使用所选事件访问所选记录。但是您可以将它们存储在一个数组中供以后使用,并用任何新的选择覆盖它是一个更好的解决方案。在评论此类内容之前,您应该阅读完整的答案。即使事件解决方案之间存在差异,getValue()也被清楚地提到