ExtJS: How to submit both: combobox value and text

2020-04-15 06:58发布

问题:

ExtJS: How to submit both: combobox value and text using standardSubmit?

回答1:

To submit the valueField, you must specify a hiddenName to create a hidden input field to hold the value of the valueField. You must also set submitValue to true

e.g.

var unitField = new Ext.form.ComboBox({
    id:'unitField',
    name: 'unit',
    submitValue : true,
    fieldLabel: 'Unit',
    store:unitStore,
    mode: 'remote',
    displayField: 'name',
    valueField: 'id',
    hiddenName : 'unitId',
    allowBlank: false,
    anchor:'95%',
    triggerAction: 'all'
});

So you get the value sent as unitId and the text as unit



回答2:

If you want to submit two values, you will need two fields. If you want both fields to be controlled by one field, you should make one field hidden, and update it when the first is updated:

var hiddenField = new Ext.form.Hidden({
    name: 'comboDisplay'
});

var combo = new Ext.form.ComboBox({
    xtype: 'combo',
    // ...
    listeners: {
        select: function(combo, record) {
            hiddenField.setValue(record.data['display']);
        }
    }
});