0

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

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

apple
axe
bananna

然后我输入“a”,我想得到一个数组,它可以让我得到“苹果”和“斧头”。

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

4

2 回答 2

2

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

  • 查询
  • 结果
  • 一些选项

所以你想要的是 onSearch 事件并读取results参数。我制作了一个JSFiddle来向您展示一个示例。

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

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

于 2013-03-11T22:42:43.290 回答
1

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

询问

由 dijit/form/_SearchMixin 定义

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

查询表达式

由 dijit/form/_SearchMixin 定义

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

搜索属性

由 dijit/form/_SearchMixin 定义

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

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

var srchItems = dijit.byId('resistForm').attr("searchAttr","a");
于 2013-03-11T20:35:52.410 回答