2012-05-17 3 views
0

Я использую extjs 4.0.7. Я хочу отключить вкладку и ввести ключевое событие, когда пользователь использует Combobox. Я попытался использовать событие keyUp и KeyDown. Но я не получил никакого предупреждения.extjs 4 combobox, как отключить вкладку и ввести ключ

Вот мой код:

{ 
    xtype: 'combo', 
    store: ds, 
    id:'UserBO_SelectComponentId', 
    displayField: 'displayName', 
    valueField: 'userId', 
    typeAhead: false, 
    hideLabel: true, 
    disabled: false, 
    hideTrigger:true, 
    multiSelect:true, 
    delimiter: ";", 
    anchor: '100%', 
    triggerAction: 'all', 
    listeners: { 
    change: function(comboField, newValue, oldValue, eOpts){ 
     selectUserCallBack2(newValue,'UserBO_SelectComponentId',comboField,oldValue); 
    }, 
    select:function(comboField,oldValue){ 
     testRec(comboField,oldValue) 
    }, 
    keypress:function(comboField,e){ 
     disabledKeysOnKeyup(comboField,e) 
    } 
    }, 
    listConfig: { 
    loadingText: 'Searching...', 
    enableKeyEvents: true, 
    emptyText: 'No matching posts found.' 
    }, 
    pageSize: 10 
} 

Может кто-нибудь предложить, пожалуйста, что здесь проблема?

ответ

2

При нажатии клавиши Keyup, keydown и keypressed события срабатывают только в том случае, если для параметра enableKeyEvents установлено значение true. По умолчанию установлено значение false, поэтому вам нужно добавить enableKeyEvents:true в конфигурацию combobox. Затем выполните специальное лечение для ввода и клавиши табуляции.

+0

теперь я вижу, что вы использовали, что enableKeyEvents в списке конфигурации, что конфигурация для ext.view.Boundlist, вы должны использовать его непосредственно на поле со списком конфигурации – nscrob

+0

Я пробовал также, но все-таки это не работает – Anup

+0

Я сделал этот пример для вас http://jsfiddle.net/nscrob/jZkHp/24/, чтобы показать вам, как обрабатывать вкладку и вводить события, однако вкладка вызывает комбо, чтобы потерять фокус, поэтому вы должны попробуйте сделать обходной путь, чтобы этого избежать. – nscrob

1

Вам не нужно слушать ключевые события и вкладку. То, что вы хотите сделать, - установить autoSelect на false. Это верно по умолчанию. Когда установлено значение false, пользователю необходимо вручную выделить элемент перед нажатием клавиши ввода или закладки, чтобы выбрать его (если значение typeAhead не было истинным) или используйте мышь для выбора значения.

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.ComboBox-cfg-autoSelect