Dojo FilteringSelect中的自动完成项列表

时间:2013-03-11 20:01:40

标签: javascript dojo

我有一个典型的FilteringSelect,当我输入它时可以工作,我可以从框中检索值,这很好。但是,我正在尝试确定是否可以访问它返回的项目列表。

例如,如果我的商店中有以下商品:

apple
axe
bananna

我输入'a'我想得到一个让我'苹果'和'斧'的数组。

我假设这将在onKeyPress:函数中的某个地方,我对文档不够熟悉。我查看了dijit.byId('selectId')但是从那里我就不太了解API /文档了

2 个答案:

答案 0 :(得分:2)

您应该查看API Documentation。在那里,您可以看到所有可能事件的摘要。当你阅读它时,你应该来到名为onSearch的事件,它返回3个参数:

  • 查询
  • 结果
  • 一些选项

所以你想要的是onSearch事件并阅读results参数。我做了一个JSFiddle给你看一个例子。

另一种可能的解决方案是直接查询商店,如果您不需要FilteringSelect,这可能很有用,但如果您只想根据查询获取商品列表。您还可以在我的JSFiddle中看到它是如何工作的。

编辑:我刚注意到您无法访问API文档。你应该尝试另一个浏览器,因为API文档包含很多有趣的东西,通常是事件/方法和属性的参考。

答案 1 :(得分:1)

我将从Dojo API页面查看以下属性: https://dojotoolkit.org/api/(点击dijit / form / FilteringSelect)

<强>查询

由dijit / form / _SearchMixin

定义

可以传递给存储以最初过滤项目的查询。 ComboBox会覆盖对searchAttr的任何引用,并将其设置为queryExpr,并替换用户的输入。

<强> queryExpr

由dijit / form / _SearchMixin

定义

这指定根据用户键入的内容向数据存储发送的查询。更改此表达式将修改结果是否只是完全匹配,“开始于”匹配等dojo.data查询表达式模式。 $ {0}将替换用户文本。 *用于通配符。 $ {0} *表示“以...开头”, $ {0} 表示“包含”,$ {0}表示“是”

<强> searchAttr

由dijit / form / _SearchMixin

定义

在数据存储中搜索此属性(在项目中)与用户键入的内容匹配的项目

例如(没有尝试过,所以不确定它是否有效): *使用attr检索或设置dojo属性。

var srchItems = dijit.byId('resistForm').attr("searchAttr","a");