我的组合使用远程查询。当用户键入内容时,服务器返回匹配的结果。但是,当有很多匹配结果时,组合会扩展,失去焦点并突出显示服务器返回的第一条记录。组合具有以下属性:
...
queryMode:'remote',
enableKeyEvents:true,
forceSelection:true,
...
正在进行的屏幕是:
因此,正如您所看到的,当用户键入最后一个字符时,服务器返回记录,而某些(我认为是愚蠢的)原因突出显示了第一个记录。但更重要的是,不再有焦点,用户必须再次将光标放在该字段上以继续输入。为了解决这个问题,我尝试了这些事件:
'blur':function(){
this.focus();
},
'keydown':function(){
this.focus();
},
'keypress':function(){
this.focus();
},
'keyup':function(){
this.focus();
},
但没有效果。我也尝试使用load事件,但它也没有效果。
答案 0 :(得分:1)
我也有这个问题,为了解决它使用组合中的afterQuery属性。 像这样:
afterQuery: function() {
combo.setRawValue(combo.lastQuery);
},
pd:我认为这是一个Bug,但我不确定...
答案 1 :(得分:1)
我可以解决类似的问题,重点是两个动作:
... me.inputEl.focus(); }
如果你有被覆盖的版本(我相信你不应该改变原始插件),你可以这样做,不重复逻辑: doRawQuery:function(){ var me = this;
me.callParent(arguments);
me.inputEl.focus();
}
答案 2 :(得分:0)
xtype: 'combo',
...
listeners:{
// repair raw value after blur
blur:function() {
var val = this.getRawValue();
this.setRawValue.defer(1, this, [val]);
}
}