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()
获取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)
陷入同样的问题并想出了这个解决方案.
var optVal = dijit.byId("yourDijitId").item.value;
Run Code Online (Sandbox Code Playgroud)
FilteringsSelect小部件将"显示值"放在displayValue和value属性中.我找到获取选项值的唯一方法是遍历item列出所选选项属性的属性.
我发现 dojo 创建了 2 个元素。一个使用名称,其中包含使用元素名称的值,另一个包含选项标签,使用元素的 ID。由于我使用的是 document.getElementById(),因此返回了错误的值。使用名称中的值可提供正确的结果。