如何在dojo中获取FilteringSelect <select>的"值"?

mct*_*987 10 html javascript forms dojo

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

例如: 如果选择了该选项,Dojo将返回文字"one",而不是该选项的值"1"."2"和"2"也是如此.
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

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

Der*_*ley 17

执行此操作的dojo方法是使用dijit.byId('yourDijitId').attr().

获得您想要的价值:

dijit.byId('yourDijitId').attr('value');
Run Code Online (Sandbox Code Playgroud)

要获取过滤中显示的值,请选择:

dijit.byId('yourDijitId').attr('displayedValue');
Run Code Online (Sandbox Code Playgroud)

编辑:attr()弃用1.5,1.5及以上,使用get()

  • attr现已弃用.你应该使用get代替.例如..dijit.byId( 'yourDijitId')得到( '值'); (3认同)

Vij*_*raj 8

获取dijit.form.FilteringSelect的值

dijit.byId('yourId').get('value');
Run Code Online (Sandbox Code Playgroud)

获取dijit.form.FilteringSelect的displayedValue

dijit.byId('yourId').get('displayedValue');
Run Code Online (Sandbox Code Playgroud)


Bit*_*ize 6

陷入同样的​​问题并想出了这个解决方案.

var optVal = dijit.byId("yourDijitId").item.value;
Run Code Online (Sandbox Code Playgroud)

FilteringsSelect小部件将"显示值"放在displayValuevalue属性中.我找到获取选项值的唯一方法是遍历item列出所选选项属性的属性.


mct*_*987 4

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