【问题标题】:extjs Combobox typeahead / auto selection for single characterextjs Combobox typeahead /自动选择单个字符
【发布时间】:2013-02-02 20:49:29
【问题描述】:

我正在使用 extjs 组合框作为性别字段。它有两个值“M”和“F”。我想让它与键盘一起使用:

 {
     xtype: 'combo',
     typeAhead: true,
     queryMode: 'local',
     minChars: 1,
     triggerAction: 'all',
     store: [
          ['M', 'M'],
          ['F', 'F']
     ]
 }

如果我输入“Ftab”(大写)而不是“ftab”(小写),则此方法有效。如果我检查此代码,则预输入有效:

 store: [
     ['M', 'Male'],
     ['F', 'Female']
 ]

有什么方法可以将值保持为“M”并使用小写字母?

【问题讨论】:

  • 您能确认一下您使用的浏览器和 Ext 版本吗,我已经用 Ext 4.0.0 和 4.0.1 进行了测试。 4.0.1 中修复了一个可能相关的小错误。
  • 我在 Chrome(最新开发,13.something)和 IE9 上看到了 extjs 4.0.1 中的错误。
  • 我在编辑器网格中使用它,以防万一。当我按下 [tab] 时,值会重置。
  • 我已经检查了 4.0.2,Safari、Chrome 或 Firefox 4 没有问题。

标签: extjs combobox extjs4


【解决方案1】:

不确定你是否解决了这个问题,但我遇到了类似的问题并找到了解决方案:

enableKeyEvents : true,
forceSelection : true,
typeAhead : false,
    listeners : 
    {
        'keyup' : function(me)
        {
            var val = me.getRawValue();
            if(val == 'm' || val == 'f')
                me.setValue(val.toUpperCase());
        }
    }

我还有一个网格,让我在组合框中选择简单的是/否类型感到悲伤。我已经到处寻找答案,但想出了这个技巧。

希望对你有帮助!

【讨论】:

  • 我已经迁移到 jquery。我认为它有效,但它不像我希望的那样干净。
【解决方案2】:

将组合框“caseSensitive”配置属性设置为 false(caseSensitive:false)。这应该可以解决问题。

【讨论】:

    【解决方案3】:

    你可以使用

    listeners: {
      'specialkey': function(field, e) {
        if (e.getKey() == e.ENTER) {
          me.searchList(appMessage);
        }
      }
    }
    

    其中 appMessage 是传递的消息变量,field 是要检查特殊情况的字段值。

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多