我正在使用dijit.form.FilteringSelect来提供一种从< select>中选择值的方法。问题是,当使用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,则按预期返回该值。
答案 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小部件将“显示值”放在displayValue
和value
属性中。我找到获取选项值的唯一方法是浏览列出所选选项属性的item
属性。
答案 3 :(得分:4)
我发现dojo创建了2个元素。一个使用名称,其中包含使用元素名称的值,另一个名称包含选项的标签,该标签使用元素的ID。由于我使用的是document.getElementById(),因此返回了错误的值。使用名称中的值可以得到正确的结果。
答案 4 :(得分:0)
对于那些尝试在FilteringSelect中找到SELECTED OBJECT的Google员工:
dijit.byId("yourDijitId").item
指的是所选项目,以防您需要访问该对象的其他属性。
(通过dijit.byId("yourDijitId").item.value
确定指向右侧方向的Bitwize)