Javascript Dojo FilteringSelect中的自动完成项列表
我有一个典型的FilteringSelect,当我输入它时,它可以工作,我可以从框中检索值,这很好。但是,我试图确定是否可以访问它返回的项目列表 例如,如果我的商店中有以下物品:Javascript Dojo FilteringSelect中的自动完成项列表,javascript,dojo,Javascript,Dojo,我有一个典型的FilteringSelect,当我输入它时,它可以工作,我可以从框中检索值,这很好。但是,我试图确定是否可以访问它返回的项目列表 例如,如果我的商店中有以下物品: apple axe bananna 我输入'a'我想得到一个数组,这个数组可以得到'apple'和'axe' 我假设这会出现在onKeyPress:函数的某个地方,我只是对文档不够熟悉。我已经研究了dijit.byId('selectId'),但是从那里我对API/文档了解得不够透彻我将从Dojo API页面查看以下
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个参数:
- 询问
- 结果
- 一些选择
结果
参数。我做了一个例子给你看
另一种可能的解决方案是直接查询商店,如果您不需要过滤器选择
,但只想根据查询获取项目列表,则此方法非常有用。您还可以在我的JSFIDLE中看到它是如何工作的
编辑:我刚刚注意到您无法访问API文档。那么您真的应该尝试另一种浏览器,因为API文档包含很多有趣的东西,并且通常是事件/方法和属性的参考。您应该查看。在那里,您可以看到所有可能事件的摘要。阅读时,您应该会看到名为onSearch
的事件,该事件返回3个参数:
var srchItems = dijit.byId('resistForm').attr("searchAttr","a");
- 询问
- 结果
- 一些选择
结果
参数。我做了一个例子给你看
另一种可能的解决方案是直接查询商店,如果您不需要过滤器选择
,但只想根据查询获取项目列表,则此方法非常有用。您还可以在我的JSFIDLE中看到它是如何工作的
编辑:我刚刚注意到您无法访问API文档。那么你真的应该尝试另一种浏览器,因为API文档包含了很多有趣的东西,通常是事件/方法和属性的参考。我似乎只是得到了风车,它没有超过这一点。我将不得不在另一台机器上研究这一点,这种情况通常发生在旧的网络浏览器上。他们中的大多数人看到Dojo时会呕吐……Firefox或Chrome总是比IE工作得更好。是的,最终访问了该网站,这就是我需要的文档。我似乎只是得到了风车,它并没有超过这一点。我将不得不在另一台机器上研究这一点,这种情况通常发生在旧的web浏览器上。大多数浏览器在看到Dojo时都会呕吐……Firefox或Chrome总是比IE工作得更好。是的,最终访问了该网站,这就是我需要的文档
var srchItems = dijit.byId('resistForm').attr("searchAttr","a");