取消BoxSelect中的选择或ExtJS中的ComboBox

取消BoxSelect中的选择或ExtJS中的ComboBox,extjs,combobox,Extjs,Combobox,虽然听起来没有任何意义,但如果我能让它工作的话 我想做的是让组合什么都不做,什么都不做。。。因此,我设法阻止它将记录添加到所选记录列表中。但是我找不到办法阻止它把这个东西涂成蓝色。 了解我要做的事情的最好方法是查看ExtJS文档页面中的实时预览,看看如果在下拉列表中选择一个项目,它会变成蓝色,尽管它没有添加到selectedRecords列表中 这是ExtJS文档页面的url 对于那些不熟悉该工具的人,只需在那里查找代码编辑器,粘贴此代码并单击Live Preview // The data

虽然听起来没有任何意义,但如果我能让它工作的话

我想做的是让组合什么都不做,什么都不做。。。因此,我设法阻止它将记录添加到所选记录列表中。但是我找不到办法阻止它把这个东西涂成蓝色。 了解我要做的事情的最好方法是查看ExtJS文档页面中的实时预览,看看如果在下拉列表中选择一个项目,它会变成蓝色,尽管它没有添加到selectedRecords列表中

这是ExtJS文档页面的url

对于那些不熟悉该工具的人,只需在那里查找代码编辑器,粘贴此代码并单击Live Preview

// The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data : [
        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
    ]
});

// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'abbr',
    multiSelect:true,
    renderTo: Ext.getBody(),
    onListSelectionChange:function(){
        console.log('Do nothing');
    } 
});

这就是你要找的吗

onListSelectionChange:function(){
    this.picker.getSelectionModel().deselectAll();
} 
看到它在这里工作:

更新 如果要保持以前选择的项目不变,可以尝试使用此选项。它将只阻止新的选择

onListSelectionChange:function(){
        var lastSelected = this.picker.getSelectionModel().lastSelected;
        itemNode = this.picker.getNode(lastSelected || 0);
        if (itemNode) {
            this.picker.getSelectionModel().deselect(lastSelected );
        }        
} 

在JSFIDLE中:

mmmm是的,也许我不够清楚。。。但是没有。。它不应选择已单击的项目。。但是保留以前选择的。。。(在本例中,不应包含任何选定项,但应仅清除选定项的选择)