Hi all,

I'm having a problem with a remote combo box which is in a grid. When a user types in the combo, it does an ajax call to populate the store. If the user selects a value manually, the select event is fired and the combo value is correctly set. However if the user types in the combo, chooses a value, and presses tab (i.e. firing the blur event) the value is lost. I'm using the saki example which is here http://examples.extjs.eu/combo.html, with the RowEditor plugin (http://edspencer.net/2009/09/using-t...ow-editor.html). Heres a snippet of my code:

{
xtype: 'combo'
, header: 'Buy Price Band'
, dataIndex: 'BuyPriceBand'
, sortable: true
, width: 110
, editor: {
xtype: 'combo'
, id: 'mycombo'
, triggerAction: 'all'
, valueField: 'Id'
, displayField: 'Code'
, required: true
, allowBlank: false
, minChars: 2
, forceSelection: true
, enableKeyEvents: true
, store: priceBandStore
, listeners: {
select: function (combo, record, index) {
this.setRawValue(record.get('Code'));
}
// repair raw value after blur
, blur: function () {
var val = this.getRawValue();
this.setRawValue.defer(1, this, [val]);
}
}
}
}

The same problem happens in Saki's example when presing tab rather than enter. this.getRawValue(); in the blur event returns an empty string
'this' is the combo box.

Essentially I want to repeat the behaviour of the select event, on the blur event. But on blur I don't have access to the record itself, only the form field.

If the store is local rather than remote, pressing tab works as expected without having to listen to any events.

Any pointers would be great.

Thanks,

Shaun