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

时间:2009-12-04 22:22:57

标签: javascript html forms dojo

我正在使用dijit.form.FilteringSelect来提供一种从&lt; select&gt;中选择值的方法。问题是,当使用dojo时,将返回标签而不是s的值。

例如:
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

如果选择了该选项,Dojo将返回文字“one”,而不是该选项的值“1”。对于“两个”和“2”也是如此。

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

5 个答案:

答案 0 :(得分:16)

执行此操作的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()

答案 1 :(得分:8)

获取 dijit.form.FilteringSelect的值

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

获取 dijit.form.FilteringSelect 的显示值

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

答案 2 :(得分:6)

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

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

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

答案 3 :(得分:4)

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

答案 4 :(得分:0)

对于那些尝试在FilteringSelect中找到SELECTED OBJECT的Google员工:

dijit.byId("yourDijitId").item

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

(通过dijit.byId("yourDijitId").item.value确定指向右侧方向的Bitwize)