2중 셀렉트박스 수정할 때 값 가져오기 질문드립니다. 채택완료
1차 선택 셀렉트박스
Copy
참가부문
참가부문
※ 어린이 : 초등학생, 청소년 : 중·고교생, 성인 : 20세 이상
2차선택 셀렉트박스
Copy
function categoryChange(e) {
var book_a = ["신청할 도서를 선택하세요", "최숙희_네 기분은 어떤 색깔이니?", "권영세_동백나무가 웃다", "김상삼_약밤나무의 백 년 이야기"];
var book_b = ["신청할 도서를 선택하세요", "김수빈_고요한 우연", "김선미_비스킷", "지혜_읽고 쓰고 내가 됩니다"];
var book_c = ["신청할 도서를 선택하세요", "이슬아_가녀장의 시대", "김익한_거인의 노트", "박창원_오늘 보는 그제 뉴-쓰", "김혜진_툭복을 비는 마음"];
var target = document.getElementById("book");
var d = [];
if(e.value == "어린이") d = book_a;
else if(e.value == "청소년") d = book_b;
else if(e.value == "성인") d = book_c;
target.options.length = 0;
for (var i = 0; i d.length; i++) {
var opt = document.createElement("option");
opt.value = d[i];
opt.innerHTML = d[i];
target.appendChild(opt);
}
}
신청 도서명
신청할 도서를 선택하세요
>권영세_동백나무가 웃다
>김수빈_고요한 우연
>지혜_읽고 쓰고 내가 됩니다
>김익한_거인의 노트
>김혜진_툭복을 비는 마음
위 코드로 글 작성하고 수정할 때 입력했던 부분까진 잘 가져 옵니다.
근데 문제는 예를들어 '어린이'일 때 연동된 2차 셀렉트박스의 내용만 들고와야 하는데 지금의 경우엔 전체 목록을 다 보여주고 있습니다.
수정할 때 1차 셀렉트 박스의 내용에 맞게 2차 셀렉트 박스의 내용만 보여주려면 어딜 수정해야 될까요?
답변 2개
채택된 답변
+20 포인트
1년 전
다음 코드가 도움이 될지 모르겠습니다.
Copy
참가부문
참가부문
※ 어린이 : 초등학생, 청소년 : 중·고교생, 성인 : 20세 이상
var option_data = ;
function categoryChange(e) {
var d = [];
for (var k in option_data) {
if (e.value == k) {
d = option_data[k];
}
}
var target = document.getElementById("book");
target.options.length = 0;
target.options[0] = new Option('신청할 도서를 선택하세요', '');
for (var i = 0; i d.length; i++) {
target.options[i + 1] = new Option(d[i], d[i]);
}
}
신청 도서명
신청할 도서를 선택하세요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
1년 전
Copy
window.onload = function(){
var e = document.getElementById('wr_4');
var text = e.options[e.selectedIndex].value;
var event = new Event('change', { bubbles: true });
e.dispatchEvent(event);
}
이 스크립트를 추가하니까 1차에서 선택한 값에 대응하는 2차 셀렉트박스 내용만 들고오긴 한데... 기존에 선택된 내용이 사라지네요 ㅎㅎ;;
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인