我有 ComboBox. 。当我从扩展列表中单击项目时, ComboBox 选择此项目并崩溃。如果我单击已经选择的项目,它也会崩溃。

有没有办法“停止” ComboBox 当用户选择已经选择的项目时崩溃?

PS:简而言之 ComboBox 表现得像 TimeFieldhttp://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

更新

我不需要至少在IE7和IE8上工作的解决方案。

有帮助吗?

解决方案

如果您想要这种行为:

Ext.form.field.ComboBox.override({
    onItemClick: Ext.emptyFn
});

其他提示

var cb = new Ext.form.ComboBox({    
    // here is your local store
    mode: 'local',
    store: new Ext.data.SimpleStore({
        fields: ['id', 'label'],
        data: [
            ['1', 'One'],
            ['2', 'Two']
        ]
    }),    
    listeners: {
        'beforeselect': function (combo, record, index) {
            // prevent collapsing if the same value is selected
            if (record.data.label == combo.getRawValue()) return false;
        }
    }
});

如果您要处理的是3.3,这似乎有效:

Ext.form.ComboBox.override({
  onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
    return this.getValue() !== record.data[this.valueField || this.displayField];
  })
});

在Chrome和IE8上测试。它可以防止 onSelect 如果当前值与您要设置的值完全匹配,则调用函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top