Extjs 在IE中选择全部+删除/退格后清除带有远程存储的组合框
我有一个4.1版的ExtJS组合框,带有一个远程存储。当组合框清空时,需要清除组合框并存储 为此,我实现了一个清除组合框并存储在按键和更改事件上的函数,请参见下面的代码 但是,当用户选择“全部shift+home”(如果光标在末尾)或“shift+end”(如果光标在开头),然后按backspace/delete键时,组合框拒绝清空自身。在这种情况下,当组合框失去焦点时,它总是用最后选择的值填充自己。这只发生在我的客户使用的IE中 你知道如何防止组合框那样做吗 下面的代码片段:Extjs 在IE中选择全部+删除/退格后清除带有远程存储的组合框,extjs,extjs4,Extjs,Extjs4,我有一个4.1版的ExtJS组合框,带有一个远程存储。当组合框清空时,需要清除组合框并存储 为此,我实现了一个清除组合框并存储在按键和更改事件上的函数,请参见下面的代码 但是,当用户选择“全部shift+home”(如果光标在末尾)或“shift+end”(如果光标在开头),然后按backspace/delete键时,组合框拒绝清空自身。在这种情况下,当组合框失去焦点时,它总是用最后选择的值填充自己。这只发生在我的客户使用的IE中 你知道如何防止组合框那样做吗 下面的代码片段: // clear
// clearExistingInput function (called from combo box)
clearExistingInput: function(ths, newVal) {
if(newVal === null){
ths.store.removeAll();
ths.clearValue();
}
}
// combo box configuration
{
labelAlign : 'right',
xtype: 'combo',
store: comboStore,
filterOnLoad: true,
typeAhead: true,
hideTrigger:true,
minChars :1,
size:15,
queryDelay: 20,
queryCaching: false,
// enable paging with width that fits the paging toolbar
matchFieldWidth: false,
listConfig: {
width: 220,
height: 300,
autoHeight: true
},
maxWidth: 35,
pageSize: true,
enableKeyEvents:true,
listeners:{
'keypress':function(ths,e){
if (e.getKey() == e.DELETE || e.getKey() == e.BACKSPACE) {
this.up('formFilter').clearExistingInput(ths, ths.value);
}
},
'change': function(ths,newVal,OldVal,eOpts){
this.up('formFilter').clearExistingInput(ths, newVal);
}
}
}
// combo box store
comboStore = Ext.create('Ext.data.Store', {
pageSize: 10,
autoLoad: false,
proxy: {
type: 'ajax',
url : 'Service/data',
reader: {
type: 'json',
root: 'data'
}
},
fields: [
{name: 'data', type : 'String'}
]
});
您是否尝试将forceSelection设置为false?组合的beforeBlur方法调用assertValue,如果forceSelection为true,则该方法将组合的值重置为lastSelection。根据Ext的文档,默认情况下它应该是false,但您可以检查它。是的,我已经尝试将forceSelection设置为false。没有调试代码,我真的猜不出为什么会发生这种情况。你发布的代码看起来不错。虽然这个.up'formFilter'.ClearExistingInpuths,但这个.value看起来有点可疑。如果要清除现有输入,那么ths.value是什么?为什么要传递它?ths.value是组合框的值。它被传递是因为我想在清除存储之前确保组合框是空的,这是必需的。如果clearExistingInput中的ths.clearValue使您感到不适-这部分看起来确实是多余的-我徒劳地尝试在我遇到问题的场景中不让组合框值返回。