从组合框中删除键入光标

时间:2012-08-01 11:14:04

标签: extjs combobox cursor listener

我使用的是ExtJS组合框。聚焦于组合框时有一个打字光标。我在创建组合框时尝试实现editable: false,但它仅对chrome有用。

还尝试clearListeners()函数来查看这是否适用于该游标 - 没有帮助,它仍然出现在FireFox和IE中。

另一个想法是在组合框中的输入字段上设置disabled。当我手动完成它时,它有所帮助。

但是当我写下一个

Ext.get('bu-encodingcount-combobox').select('input').set({disabled:'disabled'});

它没有帮助 - 不知道,也许表达是错误的。

3 个答案:

答案 0 :(得分:12)

您看到光标的原因是因为组合框获得了焦点,因此处理此问题的最简单方法是在组合获得焦点时将焦点移动到下拉选取器上。

只需将此onFocus配置添加到您的组合框配置中:

// example combobox config
xtype: 'combo',
allowBlank: false,
forceSelection: true,
valueField:'id',
displayField:'name',
store: myStore,

// add this "onFocus" config
onFocus: function() {
    var me = this;

    if (!me.isExpanded) {
        me.expand()
    }
    me.getPicker().focus();
},

另外,如果这是一个forceSelection: true组合框,我只建议这样做。它会破坏用户在现场输入任何内容的能力。

答案 1 :(得分:3)

您可以添加配置

可编辑:false

然后表现为正常的组合。

答案 2 :(得分:1)

尝试 -

适用于IE

combo.inputEl.set({禁用:'禁用'});

适用于Firefox -

combo.inputWrap.set({禁用:'禁用'});

适用于Chrome -

combo.inputCell.set({禁用:'禁用'});

这项工作很好。