Удалить курсор ввода из combobox
Я использую ExtJS combobox. Появляется курсор ввода при фокусировке на поле ввода. Я попытался реализовать editable: false
при создании combobox, но это помогло только для chrome.
тоже пробовал clearListeners()
функция, чтобы увидеть, работает ли это на этом курсоре - не помогло, он по-прежнему появляется в FireFox и IE.
другая идея-установить disabled
на поле ввода в combobox. Когда я делал это вручную, это помогало.
но когда я писал следующий!--5-->
Ext.get('bu-encodingcount-combobox').select('input').set({disabled:'disabled'});
это не помогло - не знаю, может быть, выражение неправильное.
3 ответов
причина, по которой вы видите курсор, заключается в том, что combobox получает фокус, поэтому самый простой способ справиться с этим-переместить фокус на раскрывающийся выбор всякий раз, когда комбо получает фокус.
просто добавить этот onFocus
config к вашей конфигурации combobox:
// 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
combobox. Это разрушит способность пользователей вводить что-либо в поле.
попробуй
для IE
combo.inputEl.set ({disabled: 'disabled'});
Для Firefox -
combo.inputWrap.set ({disabled: 'disabled'});
Для Chrome -
combo.inputCell.set ({disabled: 'disabled'});
это работает нормально.