dojo 如何从dijit.form.Select中获取选项文本?

r55awzrz  于 2022-12-16  发布在  Dojo
关注(0)|答案(4)|浏览(251)

我有一个dijit.表单。在我的页面上选择:

<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中的选定选项中获取文本。选择,但它似乎没有做太多?.attr('value')得到的值确定,但我需要的文本?

mzsu5hc0

mzsu5hc01#

你应该使用dijit.byId()来获取小部件示例。尝试使用以下代码来获取选定的文本:

dijit.byId('qualification').attr('displayedValue')
p1tboqfb

p1tboqfb2#

看起来你想要的是当前选择的选项(<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;
    }
  });
}
umuewwlo

umuewwlo3#

应尝试先获取选定节点,然后获取所需属性,如下所示:

dijit.byId("qualification").getSelected().attr('innerHTML');
zbq4xfa0

zbq4xfa04#

您可以尝试以下代码片段
注册表.byId(“区域列表”).值;

<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>

相关问题