2011-03-01 2 views
4

내 페이지에 dijit.form.Select 있습니다dijit.form에서 옵션 텍스트를 가져 오는 방법 선택 하시겠습니까?

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

그럼 난 선택 상자에서 선택한 옵션의 텍스트에 텍스트를 설정하는 데 사용하기 위해 노력하고있어 일부 자바 스크립트;

function checkForPHD() {  
     dojo.byId('clazzPHDMessage').innerHTML = dojo.byId('qualification') 
      .attr('displayedValue'); 
    } 

나는 .attr ('displayedValue이')를 dijit.form.Select에서 선택한 옵션에서 텍스트를 얻을 생각했지만 많은 일을하지 않는 것 같습니다 것을 읽을 것? .attr ('value') 그 값을 가지고 있지만 텍스트가 필요합니까?

답변

14

dijit.byId()를 사용하여 위젯 인스턴스를 가져와야합니다. 선택한 텍스트를 얻기 위해이 코드를 사용해보십시오 :

dijit.byId('qualification').attr('displayedValue') 
+0

탑스, 건배 그것을 위해 –

0

현재 선택한 옵션 (<option>THIS TEXT??</option>)의 innerHTML이 원하는 것 같습니다. 이 트릭을해야한다고 생각합니다. getOptions를 사용하여 모든 선택 항목의 옵션을 반복하고 선택한 항목을 찾은 다음 innerHTML을 반환하십시오. dijit.form.Select에 selectedIndex 속성이 있는지 모르겠지만 도움이 될 것입니다.

function getSelectedText() { 
    dojo.foreach(dijit.byId("qualification").getOptions(), function(opt, i) { 
    if (opt.selected) { 
     return opt.innerHTML; 
    } 
    }); 
} 
0

다음과 같이하고, 먼저 선택한 노드를 얻을 당신이 원하는 속성을 얻으려고한다 :

dijit.byId("qualification").getSelected().attr('innerHTML'); 
관련 문제