我有一个典型的 FilteringSelect,当我输入它时可以工作,我可以从框中检索值,这很好。但是,我正在尝试确定是否可以访问它返回的项目列表。
例如,如果我的商店中有以下物品:
apple
axe
bananna
然后我输入“a”,我想得到一个数组,它可以让我得到“苹果”和“斧头”。
我假设这将在 onKeyPress: function 的某个地方出现,我只是对文档不够熟悉。我已经查看了 dijit.byId('selectId') 但从那里我只是不太了解 API/文档
我有一个典型的 FilteringSelect,当我输入它时可以工作,我可以从框中检索值,这很好。但是,我正在尝试确定是否可以访问它返回的项目列表。
例如,如果我的商店中有以下物品:
apple
axe
bananna
然后我输入“a”,我想得到一个数组,它可以让我得到“苹果”和“斧头”。
我假设这将在 onKeyPress: function 的某个地方出现,我只是对文档不够熟悉。我已经查看了 dijit.byId('selectId') 但从那里我只是不太了解 API/文档
您应该查看API 文档。在那里,您可以看到所有可能事件的摘要。当您阅读它时,您应该来到onSearch
返回 3 个参数的事件调用:
所以你想要的是 onSearch 事件并读取results
参数。我制作了一个JSFiddle来向您展示一个示例。
另一种可能的解决方案是直接查询商店,如果您不需要 ,这可能很有用FilteringSelect
,但如果您只想根据查询获取项目列表。您还可以在我的 JSFiddle 中看到它是如何工作的。
编辑:我刚刚注意到您无法访问 API 文档。那么你真的应该尝试另一个浏览器,因为 API 文档包含很多有趣的东西,并且通常是事件/方法和属性的参考。
我会从 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");