Develop!/script, Ajax

폼 객체의 이름을 배열 형식으로 지었을 경우 객체에 접근하는 방법...

체리필터 2006. 11. 9. 12:28
728x90
반응형

자바스크립트에서 폼의 객체 이름을 "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


이 문제로 조금 머리 아파 하던 차에... 해결방법을 알게 되어서 올립니다. ^^

728x90
반응형