js

form 에 속한 element 중 배열 name을 가졌을 경우 자바스크립트 접근방법

하나에하나 2009. 6. 19. 20:05

무슨 방법이 혹시 없을까 고민하다가 혹시 구글해서 검색해봤더니 나온다 ...

한동안 이것때문에 name 정할때 좀 더 편하게 못했던 기억이 ;;;

여튼 고마운분이다. 이런 소중한 정보를 공유해 주시다니..

 

출처는 : http://www.4te.co.kr/19 입니다.

 

 

 

자바스크립트에서 폼의 객체 이름을 "objName[]" 식으로 지을 경우가 있다.
보통 php쪽에서 배열로 받기 위해서 위와 같이 짓는데...
이를 자바스크립트에서는 배열로 인식하지 못해 조금 난처한 경우가 많다.

가령 다음과 같은 경우 오류가 난다

<HTML>
<HEAD>
</head>

<script language="JavaScript">
<!--
function objLength() {
   alert(document.testForm.checkObj[].length);
}
//-->
</script>

<form name="testForm">
<input type="checkbox" name="checkObj[]"> aaa
<input type="checkbox" name="checkObj[]"> bbb
<input type="checkbox" name="checkObj[]"> ccc

<a href="javascript:objLength();">체크박스의 개수는?</a>
</form>

이럴 경우에는 다음과 같이 처리해 주면 된다.



<script language="JavaScript">
<!--
function objLength2() {
   alert(document.forms['testForm2']['checkObj[]'].length);
}
//-->
</script>

<form name="testForm2">
<input type="checkbox" name="checkObj[]"> aaa
<input type="checkbox" name="checkObj[]"> bbb
<input type="checkbox" name="checkObj[]"> ccc

<a href="javascript:objLength2();">체크박스의 개수는?</a>
</form>

또한 각 개체로의 접근은 다음과 같이 사용하면 된다...

ex) document.forms['testForm2']['checkObj[]'][0].value