如何在 dojo 中获取 FilteringSelect <select> 的“值”?

Posted

技术标签:

【中文标题】如何在 dojo 中获取 FilteringSelect <select> 的“值”?【英文标题】:How to get the "value" of a FilteringSelect <select> in dojo? 【发布时间】:2009-12-04 22:22:57 【问题描述】:

我正在使用 dijit.form.FilteringSelect 提供一种从

例如:<select name="test" dojoType="dijit.form.FilteringSelect"> <option value="1">One</option> <option value="2">Two</option> </select> 如果选择了该选项,Dojo 将返回文字“one”,而不是该选项的值“1”。 “二”和“二”也是如此。

如果从这个元素中删除了dojo,则按预期返回值。

【问题讨论】:

“dojo 正在返回值”是什么意思。或者你张贴这个表格?如果是这样,如何通过普通的 HTTP 帖子或 dojo XHR 请求,或者您是否尝试通过 JS 使用 dojo.getValue 来读取值。需要更完整的代码集来提供帮助。 它的行为与 mctom987 所说的完全一样。这可能是因为 Swigley 编辑了问题。 【参考方案1】:

执行此操作的 dojo 方法是使用 dijit.byId('yourDijitId').attr()。

要得到你想要的值:

dijit.byId('yourDijitId').attr('value');

要获取过滤选择中显示的值:

dijit.byId('yourDijitId').attr('displayedValue');

编辑:attr() 在 1.5 中被弃用,at 1.5 and beyond, use get()

【讨论】:

attr 现在已弃用。您应该改用 get 。例如。 dijit.byId('yourDijitId').get('value');【参考方案2】:

获取 dijit.form.FilteringSelect

的值
dijit.byId('yourId').get('value');

获取dijit.form.FilteringSelect

的displayValue
dijit.byId('yourId').get('displayedValue');

【讨论】:

【参考方案3】:

遇到了同样的问题并想出了这个解决方案。

var optVal = dijit.byId("yourDijitId").item.value;

FilteringsSelect 小部件将“显示值”放在displayValuevalue 属性中。我发现获取选项值的唯一方法是通过列出所选选项属性的item 属性。

【讨论】:

【参考方案4】:

我发现道场创建了 2 个元素。一个使用名称,其中包含使用元素名称的值,另一个包含选项标签,它使用元素的 ID。由于我使用的是 document.getElementById(),因此返回了错误的值。使用名称中的值可提供正确的结果。

【讨论】:

是的,所以您需要使用 Swingley 声明的 dijit API。使用 document.getElementByid 或 jquery 会产生不同的结果。【参考方案5】:

对于那些试图在 FilteringSelect 中查找 SELECTED OBJECT 的 Google 同事:

dijit.byId("yourDijitId").item

指的是选定的项目,以防您需要访问对象的其他属性。

(向 Bitwize 提示使用 dijit.byId("yourDijitId").item.value 指向正确的方向)

【讨论】:

以上是关于如何在 dojo 中获取 FilteringSelect <select> 的“值”?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 DOJO 中的 Json 数组中获取数据?

如何获取 dojo 数据存储的项目计数(大小)?

如何从 Dojo gridx detailProvider(Dod 模块)获取此 ref 以声明类

如何在给定row和col索引的情况下获取Dojo Grid单元的实际DOM节点?

使用 Dojo 获取查询字符串

使用Dojo获取查询字符串