테스트 사이트 - 개발 중인 베타 버전입니다

2단 셀렉트 메뉴의 처음 선택값에 따라 각각 다른 입력폼으로...

· 12년 전 · 3417 · 4
도움 주셨으면 합니다.

2단 셀렉트 메뉴의 첫째(1차) 선택된 값에 따라,

각각 다른 입력폼(질문)으로 보여지게 하려고 합니다.

먼저, 동적 셀렉트 메뉴...

---------------------------------------------------------------------------------------

<script>
var hobby0 = new Array("-선택-","");
var hobby1 = new Array("보석","향수","우표","골동품","화폐");
var hobby2 = new Array("헹글라이딩","패러글라이딩","스카이다이빙","스쿠버다이빙");
var hobby3 = new Array("독서","영화","사진","미술","악기");
var hobby4 = new Array("공예","사진","그림","문예");
function hobbychange(item){
var temp, i=0, j=0;
var ccount, cselect;
temp = document.signform.hobby;
for (i=(temp.options.length-1) ; i>0 ; i--){ temp.options[i] = null; }
eval('ccount = hobby' + item + '.length');
for (j=0 ; j<ccount ; j++) {
eval('cselect = hobby' + item + '[' + j + '];');
temp.options[j]= new Option(cselect,cselect);
}
temp.options[0].selected=true;
return true;
}
</script>
<form name=signform>
<table cellpadding=1>
<tr>
<td>1차</td>
<td>2차</td>
</tr>
<tr>
<td>
<select name=bighobby onChange=javascript:hobbychange(document.signform.bighobby.options.selectedIndex);>
<option selected value="">-선택-</option>
<option value=수집>수집</option>
<option value=야외>야외</option>
<option value=문화>문화</option>
<option value=창작>창작</option>
</select>
</td>
<td>
<select name=hobby size=1>
<option selected value="">-선택-</option>
<option value=""></option>
</select>
</td>
</tr>
</table>
</form>

---------------------------------------------------------------------------------------

1차 선택이... "수집", "야외", "문화"인 경우에는 [ 질문 1 ]을...

1차 선택이... "창작"을 선택한 경우엔 [ 질문 2 ]가 보여졌으면 합니다.

---------------------------------------------------------------------------------------

셀렉트 메뉴 첫째 선택값을 어떻게 배열해 주어야 하나요...?

글수정 할 경우에도 문제없이 잘 작동하게 하고 싶습니다...

고수님들께서 도움 주셨으면 합니다.

---------------------------------------------------------------------------------------

<form>

... 이부분이 막막합니다 ...

<div style="relative; display:block;">

<div id="Q1">
... [ 질문 1 ] ...
</div>

<div id="Q2" style="absolute; display:none;">
... [ 질문 2 ] ...
</div>

</div>

</form>


<script type="text/javascript">
function input(temp)
{
if(temp==1)
{
document.getElementById("Q1").style.display="";
document.getElementById("Q2").style.display="none";
}else{
document.getElementById("Q1").style.display="none";
document.getElementById("Q2").style.display="";
}
}
</script>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

12년 전
이것도 응용해 보세요.
http://www.ezjob.kr/bbs/board.php?bo_table=OpenSource&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%B4%D9%C1%DF&x=0&y=0
이천이지님, 그간 잘 지내셨는 지요?
전에 UTF-8 구현을 위해서 도메인 지원해 드렸던 적있는... ( 기억하시겠죠? ^^ )
제가 질문에 대한 설명을 전달력있게 하지못하여, 답변이 약간 벗어나게 되었네요.
하지만, 도움되었습니다. 답변 감사드립니다.
이걸 원하신거죠?

[code]
<script>
var hobby0 = new Array("-선택-","");
var hobby1 = new Array("보석","향수","우표","골동품","화폐");
var hobby2 = new Array("헹글라이딩","패러글라이딩","스카이다이빙","스쿠버다이빙");
var hobby3 = new Array("독서","영화","사진","미술","악기");
var hobby4 = new Array("공예","사진","그림","문예");
function hobbychange(item){
var temp, i=0, j=0;
var ccount, cselect;
temp = document.signform.hobby;
for (i=(temp.options.length-1) ; i>0 ; i--){ temp.options[i] = null; }
eval('ccount = hobby' + item + '.length');
for (j=0 ; j<ccount ; j++) {
eval('cselect = hobby' + item + '[' + j + '];');
temp.options[j]= new Option(cselect,cselect);
}
temp.options[0].selected=true;
return true;
}
</script>
<form name=signform>
<table cellpadding=1>
<tr>
<td>1차</td>
<td>2차</td>
</tr>
<tr>
<td>
<select name=bighobby onChange="hobbychange(document.signform.bighobby.options.selectedIndex);input(this.options.selectedIndex);">
<option selected value="">-선택-</option>
<option value=수집>수집</option>
<option value=야외>야외</option>
<option value=문화>문화</option>
<option value=창작>창작</option>
</select>
</td>
<td>
<select name=hobby size=1>
<option selected value="">-선택-</option>
<option value=""></option>
</select>
</td>
</tr>
</table>
</form>



<form>

<div style="relative; display:block;">

<div id="Q1" style="absolute; display:none;">
... [ 질문 1 ] ...
</div>

<div id="Q2" style="absolute; display:none;">
... [ 질문 2 ] ...
</div>

</div>

</form>


<script type="text/javascript">
function input(item)
{
if(item==1 || item==2 || item==3)
{
document.getElementById("Q1").style.display="";
document.getElementById("Q2").style.display="none";
}
else if(item==4)
{
document.getElementById("Q1").style.display="none";
document.getElementById("Q2").style.display="";
}
else
{
document.getElementById("Q1").style.display="none";
document.getElementById("Q2").style.display="none";
}
}
</script>
[/code]
시간 내셔서 명쾌한 답글 주셔서 많은 도움이 되었습니다.
진심으로 감사드립니다. ( 약간의 변경을 하게되어 같은 질문에 대해, "쪽지"를 드리게 되었습니다. )

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440