[英]How to get the “value” of a FilteringSelect <select> in dojo?
我正在使用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”和“2”也是如此。
如果从此元素中删除了dojo,则会按预期返回该值。
执行此操作的dojo方法是使用dijit.byId('yourDijitId')。attr()。
获得您想要的价值:
dijit.byId('yourDijitId').attr('value');
要获取过滤中显示的值,请选择:
dijit.byId('yourDijitId').attr('displayedValue');
编辑 :attr()弃用1.5,1.5及以上,使用get()
获取dijit.form.FilteringSelect的值
dijit.byId('yourId').get('value');
获取dijit.form.FilteringSelect的displayedValue
dijit.byId('yourId').get('displayedValue');
陷入同样的问题并想出了这个解决方案。
var optVal = dijit.byId("yourDijitId").item.value;
FilteringsSelect小部件将“显示值”放在displayValue
和value
属性中。 我找到获取选项值的唯一方法是遍历列出所选选项属性的item
属性。
我发现dojo创建了2个元素。 一个使用名称,其中包含使用元素名称的值,另一个名称包含选项的标签,该标签使用元素的ID。 由于我使用的是document.getElementById(),因此返回了错误的值。 使用名称中的值可提供正确的结果。
对于那些试图在FilteringSelect中找到SELECTED OBJECT的Google员工:
dijit.byId("yourDijitId").item
如果您需要访问对象的其他属性,则引用所选项。
(使用dijit.byId("yourDijitId").item.value
将标题改为Bitwize指向正确的方向dijit.byId("yourDijitId").item.value
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.