extjs 4组合框,如何禁用选项卡并输入密钥

时间:2012-05-17 06:05:43

标签: extjs4

我正在使用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 
}

有人可以建议这里有什么问题吗?

2 个答案:

答案 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