我正在使用extjs 4.0.7。我想在用户使用Combobox时禁用tab和Enter键事件。我试图使用keyUp和KeyDown事件。但我没有得到任何警报。
这是我的代码:
{
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
}
有人可以建议这里有什么问题吗?
答案 0 :(得分:2)
如果enableKeyEvents设置为true,则仅触发keyup,keydown和keypressed事件。默认值设置为false,因此您需要将enableKeyEvents:true
添加到组合框配置中。然后对enter和tab键进行特殊处理。
答案 1 :(得分:1)
您无需收听关键事件和标签。您要做的是将autoSelect
设置为false。这是默认的。设置为false时,用户必须先手动高亮显示项目,然后再按Enter键或Tab键进行选择(除非typeAhead的值为true),或使用鼠标选择值。
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.ComboBox-cfg-autoSelect