이것은 내가 어제 데리고 있었던 문제의 연속이다. 만일 그것이 친숙 해지면 thats 이유 :) 그것은 다른 질문 tho 다!dijit.form.Select 다시 채워지지 않았습니까?
그래서 저는 처음에 dijit.form.Select 페이지를 만들었습니다.
<c:set var="clazzId" value="${verification.clazz.id}" />
<div id="clazzOptions">
<select id="clazz" name="clazz" style="width:22em" dojoType="dijit.form.Select" maxHeight="140">
<option value="-1" label=" " />
<c:forEach items="${requestScope.clazzes}" var="clazzItem">
<c:choose>
<c:when test="${clazzId eq clazzItem.id}">
<option value="${clazzItem.id}" selected = "true">${clazzItem.name}</option>
</c:when>
<c:otherwise>
<option value="${clazzItem.id}">${clazzItem.name}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
그때 내가 아래 다른 드롭 (여기에서 볼 수없는)에서 선택한 값에 따라 사업부 "clazzOptions"의 내용을 교환하는 데 사용하기 위해 노력하고있어 일부 자바 스크립트가
. 그것의 특정 가치가있는 경우에, 다른 어떤 가치든지, 원본 메시지로 div를 교환하십시오 원래 dijit.form.Select를 다시 보여주십시오;
<script type="text/javascript">
var classDropDown;
var classPhDMessage = "PhD's do not require a Class or Grade";
dojo.addOnLoad(function() {
classDropDown = dojo.byId('clazzOptions').innerHTML;
});
function checkForPHD() {
var awardOption = dijit.byId('qualification').attr('displayedValue');
if(awardOption == "PhD"){
dojo.byId('clazzOptions').innerHTML = classPhDMessage;
} else {
dojo.byId('clazzOptions').innerHTML = classDropDown;
}
}
</script>
당신은 내가 페이지가로드 한 후가 (보이지 않는) 아래 다른 드롭에서 선택한 값에 따라 때 그대로 innerHTMLof에게 미리 정의 메시지 간의 변화를 사업부를 캡처하기 위해 노력하고있어 볼 수 있듯이 및 캡처 된 div 내용
문제는 원래 div 내용이 메시지로 대체 된 후 "PhD"에서 다시 선택 항목이 변경되고 원래 div innerHTML이 div에 다시 배치되면 dijit.form.Select - 나타나지만 완전히 비어 있고 사실 전혀 사용할 수없는 것으로 보입니까? dijit.form.Select dojoType을 제거하고 정상적인 선택으로 남겨두면이 전체 작업이 완벽하게 작동하지만 dijit.form.Select가 필요합니다.
dijit.form을 선택하지 않는 이유는 무엇입니까?이 경우 정상 선택과 달리 작업을 선택 하시겠습니까?
방금 옵션 1을 선택 했으므로 Keep It Simple Stupid! –