繁体   English   中英

如何获得FilteringSelect的“价值” <select>在道场?

[英]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小部件将“显示值”放在displayValuevalue属性中。 我找到获取选项值的唯一方法是遍历列出所选选项属性的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM