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

3단셀렉트 오류문의를 드립니다.

· 14년 전 · 442
안녕하세요. 3단셀렉트 오류문의를 드립니다.

셀렉트에 오류가 있는것 같아요.
셀렉트 1번에 항목이 3개면, 2번이 2개더라도 3개로 나와버려요.
앞의 수량을 뒤에 셀렉트가 그대로 가져가는것 같아요.
아래는 적용한 3단셀렉트 소스입니다.
어디 부분에 오류가 있는것 같은데, 고수님들의 도움 부탁 드립니다.



3단 셀렉트 소스

<SCRIPT LANGUAGE="JavaScript">
<!--
// select a의 선택 값을 이용해 select b의 선택 값을 생성
function change_option_a(form) {
if(form.coa.options[form.coa.selectedIndex].value != 0) {
// 예를들어 select a에서 선택된 값의 value가 s1이라고 했을시 아래 명령과 동일하다
// change_option_a_s1(form);
eval('change_option_a_'+form.coa.options[form.coa.selectedIndex].value+'(form);');
} else {
// value값으로 0을 가지는option을 선택시 명령
}
}

// select b의 선택 값을 이용해 select c의 선택 값을 생성
function change_option_b(form) {
if(form.cob.options[form.cob.selectedIndex].value != 0) {
// 예를들어 select b에서 선택된 값의 value가 s11이라고 했을시 아래 명령과 동일하다
// change_option_a_s11(form);
eval('change_option_b_'+form.cob.options[form.cob.selectedIndex].value+'(form);');
} else {
// value값으로 0을 가지는option을 선택시 명령
}
}

// select a,b,c에서 선택한 text와 value값을 출력
function change_option_result(form) {
// text
alert('[Text]\nSELECT A : '+form.coa.options[form.coa.selectedIndex].text+ // select a
'\nSELECT B : '+form.cob.options[form.cob.selectedIndex].text+ // select b
'\nSELECT C : '+form.coc.options[form.coc.selectedIndex].text+ // select c
'\n\n========================='+
// value
'\n\n[Value]\nSELECT A : '+form.coa.options[form.coa.selectedIndex].value+ // select a
'\nSELECT B : '+form.cob.options[form.cob.selectedIndex].value+ // select b
'\nSELECT C : '+form.coc.options[form.coc.selectedIndex].value); // select c
}

// select a에서 select 1을 선택시 select b에서 보여지는 값
function change_option_a_s1(form) {
form.cob.options[0] = new Option("SELECT B 1",0); // new Option('text','value');
form.cob.options[1] = new Option("Select 1 1","s11");
form.cob.options[2] = new Option("Select 1 2","s12");
form.cob.options[3] = new Option("Select 1 3","s13");
}

// select a에서 select 2를 선택시 select b에서 보여지는 값
function change_option_a_s2(form) {
form.cob.options[0] = new Option("SELECT B 2",0);
form.cob.options[1] = new Option("Select 2 1","s21");
form.cob.options[2] = new Option("Select 2 2","s22");
}

// select b에서 select 1 1을 선택시 select c에서 보여지는 값
function change_option_b_s11(form) {
form.coc.options[0] = new Option("SELECT C 1 1",0);
form.coc.options[1] = new Option("Select 1 1 1","s111");
form.coc.options[2] = new Option("Select 1 1 2","s112");
}

// select b에서 select 1 2를 선택시 select c에서 보여지는 값
function change_option_b_s12(form) {
form.coc.options[0] = new Option("SELECT C 1 2",0);
form.coc.options[1] = new Option("Select 1 2 1","s121");
form.coc.options[2] = new Option("Select 1 2 2","s122");
}

// select b에서 select 2 1을 선택시 select c에서 보여지는 값
function change_option_b_s21(form) {
form.coc.options[0] = new Option("SELECT C 2 1",0);
form.coc.options[1] = new Option("Select 2 1 1","s211");
form.coc.options[2] = new Option("Select 2 1 2","s212");
}

// select b에서 select 2 2를 선택시 select c에서 보여지는 값
function change_option_b_s22(form) {
form.coc.options[0] = new Option("SELECT C 2 2",0);
form.coc.options[1] = new Option("Select 2 2 1","s221");
form.coc.options[2] = new Option("Select 2 2 2","s222");
}
//-->
</SCRIPT>

<FORM NAME="form">

<SELECT NAME="coa" onChange="change_option_a(this.form);">
<OPTION VALUE="0">SELECT A</OPTION>
<OPTION VALUE="s1">Select 1</OPTION>
<OPTION VALUE="s2">Select 2</OPTION>
</SELECT>

<SELECT NAME="cob" onChange="change_option_b(this.form);">
<OPTION VALUE="0">SELECT B</OPTION>
</SELECT>

<SELECT NAME="coc">
<OPTION VALUE="0">SELECT C</OPTION>
</SELECT>

<INPUT TYPE="button" VALUE="click" onClick="change_option_result(this.form);">

</FORM><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]</div>

댓글 작성

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

로그인하기

게시글 목록

번호 제목
8050
8048
19969
19968
19967
19966
19965
19964
19963
19962
19961
28345
31017
19960
19959
19958
19957
8039
8035
8029
28344
28339
8019
28338
8017
8010
8007
8004
8003
28332
28322
7999
28317
20956
7992
20945
28314
20936
20931
7986
20925
7982
7979
7978
7975
28307
7973
7966
28305
7963
28300
7961
28297
28295
7959
19948
19947
28292
31016
19946
19945
28286
7958
7956
7952
7946
28285
28283
19943
7944
7936
7931
28279
24666
24663
7928
7923
19941
28274
28257
28249
28248
7914
7912
7911
20912
7908
31755
28233
28232
28228
7903
28217
20900
24662
20891
20882
19936
20853
31011