I have found that in IE7, if you don't supply a name config option, the combobox field will open its menu in the top left of the page. Just to make it clear, I have not observed this issue in IE8, IE9, FireFox, or Chrome (I haven't tried the IE10 beta).
I have no idea why the name config option fixes this.
So I looked at the initComponent function for the combobox, and I noticed that the only part it checks for a me.name and then provides a default value is if the combobox is transforming an existing component (I am guessing it is so you can swap displayfields into comboboxes and vice versa).
So perhaps after the transform block an "else if" should be added to make it look like this:
Code:
if (transform) {
transformSelect = Ext.getDom(transform);
if (transformSelect) {
store = Ext.Array.map(Ext.Array.form(transformSelect.option), function(option) {
return [option.value, option.text];
});
if (!me.name) {
me.name = transformSelect.name;
}
if (!('value' in me)) {
me.value = transformSelect.value;
}
}
}
//here is the added portion
else if (!me.name) {
me.name = me.id || (me.id = Ext.id());
}
Does this seem to be the right solution (instead of just supplying unused name options which could one day get me into trouble when a BS name ends up in an ajax fetch) or am I blowing smoke?