如何在 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
的displayValuedijit.byId('yourId').get('displayedValue');
【讨论】:
【参考方案3】:遇到了同样的问题并想出了这个解决方案。
var optVal = dijit.byId("yourDijitId").item.value;
FilteringsSelect 小部件将“显示值”放在displayValue
和value
属性中。我发现获取选项值的唯一方法是通过列出所选选项属性的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 gridx detailProvider(Dod 模块)获取此 ref 以声明类