Javascript Dojo FilteringSelect中的自动完成项列表

Javascript Dojo FilteringSelect中的自动完成项列表,javascript,dojo,Javascript,Dojo,我有一个典型的FilteringSelect,当我输入它时,它可以工作,我可以从框中检索值,这很好。但是,我试图确定是否可以访问它返回的项目列表 例如,如果我的商店中有以下物品: apple axe bananna 我输入'a'我想得到一个数组,这个数组可以得到'apple'和'axe' 我假设这会出现在onKeyPress:函数的某个地方,我只是对文档不够熟悉。我已经研究了dijit.byId('selectId'),但是从那里我对API/文档了解得不够透彻我将从Dojo API页面查看以下

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

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

apple
axe
bananna
我输入'a'我想得到一个数组,这个数组可以得到'apple'和'axe'


我假设这会出现在onKeyPress:函数的某个地方,我只是对文档不够熟悉。我已经研究了dijit.byId('selectId'),但是从那里我对API/文档了解得不够透彻

我将从Dojo API页面查看以下属性: (单击dijit/form/FilteringSelect)

查询

由dijit/form/\u SearchMixin定义

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

queryExpr

由dijit/form/\u SearchMixin定义

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

searchAttr

由dijit/form/\u SearchMixin定义

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

例如(尚未尝试此方法,因此不确定是否有效): *使用attr检索或设置dojo属性

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

我将从Dojo API页面查看以下属性: (单击dijit/form/FilteringSelect)

查询

由dijit/form/\u SearchMixin定义

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

queryExpr

由dijit/form/\u SearchMixin定义

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

searchAttr

由dijit/form/\u SearchMixin定义

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

例如(尚未尝试此方法,因此不确定是否有效): *使用attr检索或设置dojo属性

var srchItems = dijit.byId('resistForm').attr("searchAttr","a");
你应该看看地图。在那里,您可以看到所有可能事件的摘要。阅读时,您应该会看到名为
onSearch
的事件,该事件返回3个参数:

  • 询问
  • 结果
  • 一些选择
因此,您需要的是onSearch事件并读取
结果
参数。我做了一个例子给你看

另一种可能的解决方案是直接查询商店,如果您不需要
过滤器选择
,但只想根据查询获取项目列表,则此方法非常有用。您还可以在我的JSFIDLE中看到它是如何工作的

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

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

var srchItems = dijit.byId('resistForm').attr("searchAttr","a");
  • 询问
  • 结果
  • 一些选择
因此,您需要的是onSearch事件并读取
结果
参数。我做了一个例子给你看

另一种可能的解决方案是直接查询商店,如果您不需要
过滤器选择
,但只想根据查询获取项目列表,则此方法非常有用。您还可以在我的JSFIDLE中看到它是如何工作的


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

我似乎只是得到了风车,它没有超过这一点。我将不得不在另一台机器上研究这一点,这种情况通常发生在旧的网络浏览器上。他们中的大多数人看到Dojo时会呕吐……Firefox或Chrome总是比IE工作得更好。是的,最终访问了该网站,这就是我需要的文档。我似乎只是得到了风车,它并没有超过这一点。我将不得不在另一台机器上研究这一点,这种情况通常发生在旧的web浏览器上。大多数浏览器在看到Dojo时都会呕吐……Firefox或Chrome总是比IE工作得更好。是的,最终访问了该网站,这就是我需要的文档
var srchItems = dijit.byId('resistForm').attr("searchAttr","a");