extjs中onLoad()的自动选择问题

时间:2012-04-12 06:01:01

标签: extjs extjs3

我使用listner beforequery来过滤组合框。过滤时一切都很好,但我面临一个问题,如:

当我们在组合框中输入所需的字符进行过滤时,它们会被自动选中..所以当我们要输入新字符时,我们必须按右侧箭头删除选择,否则剩下的字符将被删除...请帮助为什么这个行为。

代码:

xtype: 'combo',
            fieldLabel: 'Label',
            anchor: '100%',
            enableKeyEvents: true,
            allowBlank: false,
            displayField: 'value',
            store: 'level1Store',
            lazyInit: false,
            mode: 'local',
            forceSelection: true,
            disableKeyFilter: true,
            editable: true,
            triggerAction: 'all',
            valueField: 'key',
            name: 1,
            ref: 'combo1',
            id: 'field1'

要过滤的列表代码:

Ext.getCmp('field1').addListener({
        beforequery: function (e) {
            if (e.query && e.query.indexOf('?') != -1) {
                e.cancel = true;
                var query = new RegExp(String.format('^{0}', e.query.replace(/\?/g, '[A-Za-z0-9]')));
                this.onLoad();
                this.store.clearFilter(true);
                this.store.filter(this.displayField, query);
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

你可以做两件事:

1)您可以使用自定义的必需行为覆盖此默认行为。

2)您可以收听组合的焦点事件并取消选择文本。