【问题标题】:Auto complete textfield with ExtJs使用 ExtJs 自动完成文本字段
【发布时间】:2013-07-22 15:53:31
【问题描述】:

如何使用 ExtJs 编写简单的自动完成功能?如果该字段有地址并且他们开始输入st 它应该变成街道等

【问题讨论】:

  • 我把它写成评论而不是答案,因为我没有时间给你测试代码,只是一个草图。听起来这可以使用具有配置属性 hideTrigger: true (使其看起来像普通的 TextField)和 typeAhead: true (提供建议机制)的 ComboBox 以及 keyup 事件的侦听器来完成,然后可以解析字符串 (getValue()) 并查看最后一个单词是否与某个给定字典匹配,并相应地用任何建议填充 ComboBox。
  • @fastcodejava 你能发布你完成的代码吗?

标签: javascript web-applications autocomplete extjs


【解决方案1】:

正如 Mitch 在他的评论中所建议的,您可以使用正确配置的 Ext.form.Combobox 来执行此操作。您不需要将任何内容绑定到 keyup 事件,因为 Combobox 会为您处理。

这是应该工作的配置的开始。您需要提供适当的 Ext.data.Store(或其子类),以及一些其他配置值(displayField、valueField、queryParam 等)。所有必要的东西都在 API 文档中有很好的记录)

MyTypeahead = new Ext.form.ComboBox({
   triggerAction:'all',
   typeAhead:true,
   mode:'remote',
   minChars:2,
   forceSelection:true,
   hideTrigger:true
});

【讨论】:

  • 我的印象是像“123 main st”这样的输入应该触发“123 main street”的建议,其中“street”在字典中,但“123 main street”不是;据我所知,ComboBox 中没有为此的自动机制。虽然我以前从未使用过 queryParam,所以我可能是错的。无论如何,我给了 +1。
  • 啊,我不是这样读的——我的答案只是一个简单的强制选择预输入字段。如果“123 main street”作为选项存在,“123 main st”将建议“123 main street”。 queryParam 只是命名用于进行远程查找的请求变量。
  • 米奇对我正在寻找的东西是正确的。我仍然为此努力 +1 并接受了答案。
【解决方案2】:

这是他们的例子,他们称之为“live search”。

【讨论】:

    【解决方案3】:

    ExtJS:如何让组合框执行“包含”/LIKE 搜索 见this

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2018-09-24
      • 2011-03-17
      • 2012-05-24
      相关资源
      最近更新 更多