我的页面上有一个dijit.form.Select:
<c:set var="qualId" value="${previous.qualification.id}" />
<select id="qualification" name="qualification" dojoType="dijit.form.Select" onchange="checkForPHD()">
<option value="-1" label=" "> </option>
<c:forEach items="${requestScope.qualifications}" var="qualItem">
<c:choose>
<c:when test="${qualId eq qualItem.id}">
<option value="${qualItem.id}" selected = "selected">${qualItem.name}</option>
</c:when>
<c:otherwise>
<option value="${qualItem.id}">${qualItem.name}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
然后我试图用一些javascript将一些文本设置为从选择框中选择的选项的TEXT;
function checkForPHD() {
dojo.byId('clazzPHDMessage').innerHTML = dojo.byId('qualification')
.attr('displayedValue');
}
我读过.attr('displayedValue')假设从dijit.form.Select中的选定选项中获取文本,但它似乎没有做太多? .attr('value')得到了那些值,但是我需要TEXT吗?
答案 0 :(得分:15)
您应该使用dijit.byId()来获取小部件实例。尝试使用此代码获取所选文本:
dijit.byId('qualification').attr('displayedValue')
答案 1 :(得分:0)
似乎你想要的是当前所选选项(<option>THIS TEXT??</option>
)的innerHTML。我认为这应该可以解决问题。使用getOptions循环遍历所有select选项并找到所选选项,然后返回其innerHTML。我不知道dijit.form.Select
是否有selectedIndex属性,但这也有帮助。
function getSelectedText() {
dojo.foreach(dijit.byId("qualification").getOptions(), function(opt, i) {
if (opt.selected) {
return opt.innerHTML;
}
});
}
答案 2 :(得分:0)
您应首先尝试获取所选节点,然后获取所需的属性,如下所示:
dijit.byId("qualification").getSelected().attr('innerHTML');
答案 3 :(得分:0)
您可以尝试以下代码片段
dijit.registry.byId(“ regionList”)。value;
<select name="regionList" id="regionList" data-dojo-id="regionList" data-dojo-type="dijit/form/Select">
<option value="" selected="true">Select LoB</option>
<option value="Asia" >Asia</option>
<option value="Africa" >Africa</option>
</select>