Select 선택시 객체의 show, hidden 질문입니다. 채택완료

https://m.blog.naver.com/PostView.nhn?blogId=lsv400&logNo=100041558359&proxyReferer=https:%2F%2Fwww.google.com%2F

 

위경로에서 셀렉트박스에서 1개 선택후에는 정상적으로 잘나옵니다

그런데 제가 필요한건 2개의 내용이나와야 하는데 

아래와같이 작업을 해봤는데 안되더라구요 ?

혹시 안되는 이유에 대해서 아시는분 계실까요?

 

 

Copy
<table border="1px">
 
        <tr>
            <td id="tr_01">부서</td>   
            <td id="tr_02">전략사업부</td>   
            <td id="tr_01">담당</td>
            <td id="tr_02">
            <select name="Name" onchange="Show_hidden(this.value);">
            <option value="">담당자 선택</option>
            <option value="1">12 차장</option>
            <option value="2">123대리</option>
            <option value="3">1345 대리</option>
            <option value="4">1234 대리</option>
            </select>
        </td>   
            <td id="tr_01">연락처</td>   
            <td id="tr_02">
            <div id="test_1" style="display:block;">010-1111-1111</div>
             <div id="test_2" style="display:none;">010-2222-2222</div>
             <div id="test_3" style="display:none;">010-3333-3333</div>
             <div id="test_4" style="display:none;">010-4444-4444</div>
 
            </td>  
            <td id="tr_01">이메일</td>   
            <td id="tr_02">
            <div id="sot_1" style="display:block;">11</div>
             <div id="sot_2" style="display:none;">22</div>
             <div id="sot_3" style="display:none;">33</div>
             <div id="sot_4" style="display:none;">44</div>
            </td>   
        </tr>
    </table>


    </div>
  
    </form>
 <script language="JavaScript">
 <!--
 function Show_hidden(e){
  var menu = new Array("test_1","test_2","test_3","test_4","test_5"); // 객체 배열로 지정
  for(var i=0;i < menu.length;i++){
   if("test_"+e==menu[i]){
    document.all[menu[i]].style.display="block";
   }else{
    document.all[menu[i]].style.display="none";
   }
  }
 }  

 function Show_hidden(e){
   var menu = new Array("sot_1","sot_2","sot_3","sot_4"); // 객체 배열로 지정
  for(var i=0;i < menu.length;i++){
   if("sot_"+e==menu[i]){
    document.all[menu[i]].style.display="block";
   }else{
    document.all[menu[i]].style.display="none";
   }
  }
 } 
 //-->

답변 3개

채택된 답변
+20 포인트
function Show_hidden(e){   함수명이 같은걸 두번 사용은 안됩니다.

아래처럼 하세요

onchange="Show_hidden(this.value);Show_hidden2(this.value);"

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

<script language="JavaScript">
<!--
onchange="Show_hidden(this.value);Show_hidden2(this.value);"
var menu = new Array("test_1","test_2","test_3","test_4","test_5"); // 객체 배열로 지정
for(var i=0;i < menu.length;i++){
if("test_"+e==menu[i]){
document.all[menu[i]].style.display="block";
}else{
document.all[menu[i]].style.display="none";
}
}
}
function Show_hidden(e){
var menu = new Array("sot_1","sot_2","sot_3","sot_4"); // 객체 배열로 지정
for(var i=0;i < menu.length;i++){
if("sot_"+e==menu[i]){
document.all[menu[i]].style.display="block";
}else{
document.all[menu[i]].style.display="none";
}
}
}
//-->
</script>

이렇게 해도안되네요 ㅠ

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

객체 배열이 작은건 상관없지만, 없을경우에는 오류 납니다.

Copy
function Show_hidden(e){
    var menu = new Array("test_1","test_2","test_3","test_4"); // 객체 배열로 지정
    
   for(var i=0;i < menu.length;i++){
    if("test_"+e==menu[i]){
      document.all[menu[i]].style.display="block";
    }else{
      document.all[menu[i]].style.display="none";
    }
   }
   var menu = new Array("sot_1","sot_2","sot_3","sot_4"); // 객체 배열로 지정
   for(var i=0;i < menu.length;i++){
    if("sot_"+e==menu[i]){
      document.all[menu[i]].style.display="block";
    }else{
      document.all[menu[i]].style.display="none";
    }
  }
 }
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

알려주신대로 해보니 잘됩니다. 감사합니다.

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

코드 자체가 하나일때만 처리되도록 되어 있습니다.

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고