在IE中选择全部+删除/退格后,使用远程存储清除组合框

时间:2013-03-13 03:08:38

标签: extjs extjs4

我有一个带有远程存储的ExtJS组合框(版本4.1)。清除组合框并在组合框清空时存储。

为此,我实现了一个清除组合框并存储在按键上并更改事件的函数(参见下面的代码)。

但是,当用户选择全部时,组合框拒绝自行清空(如果光标位于末尾则为shift + home,如果光标位于开头,则为shift + end),然后按下退格键/删除键。在这种情况下,组合框总是在失去焦点时使用最后选择的值填充自身。这只发生在IE(我的客户使用)中。

知道如何阻止组合框这样做吗?

以下代码段:

// 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'}
        ]
});

0 个答案:

没有答案