안규 공부방

Javascript & JQuery & CSS > example - Length가 undefined 처리방법

등록일 : 2017-07-04 18:47 조회수 : 95,359

일반적으로 객체가 1개일때 Length 를 구하게 되면 undefined 가 뜨게 됩니다. 
만약 소스상에 Form 객체 check_no 가 없거나, 1개일때, 또는 여러개가 생길 수도 있는 프로그램을 만들게 될 경우 이러한 경우 예외 처리 하는 경우 난감 할때가 있습니다.
이런 경우 간단한 방법으로 처리가 가능합니다.

script 소스에서는 getElementsByName Method 를 이용해서 check_text[] 을 읽어와 check_obj.length 와 같은 형태로 뿌려주면 undefined 가 뜨지않고,

length를 구할 수 있습니다.

그렇다면 없는 객체를 읽어와 length를 출력하게 되면 어떻게 될까요?

보통의 경우는 없는 객체로 인식하여 Null 값을 반환하여 스크립트 오류가 뜨게 되는데요..

테스트 해 보도록 하겠습니다.

var check_obj = document.getElementsByName('input_null[]') ;
alert(check_obj.length);


소스를 보시면 getElementsByName 메소드를 이용하여 input_null[] 객체를 읽어 옵니다. 그러나 document 에는 input_null[] 이라는 객체가 존재하지 않습니다.

그래도 스크립트상 오류를 뜨지 않고, 0이라는 숫자 length를 반환 하게 됩니다.

아래 예제는 유용한 예제 입니다.

checkbox checked 에 따른 input 값을 찾아 출력해 주는 소스 입니다.
 
var check_obj = document.getElementsByName('check_list[]') ;
    var text_obj = document.getElementsByName('text_list[]') ;

    if(check_obj.length) 
	{
		for(i=0; i<check_obj.length; i++)
		{
			if(check_obj.item(i).checked)
			{
				alert(text_obj.item(i).value);
			}
		}
	}
  check_obj.item(i).checked  를 대신 하여 check_obj[i].checked 와 같이 사용하여도 되며, text_obj.item(i).value 를 대신 하여 text_obj[i].value 를 사용해도 됩니다.

마지막으로 ASP 프로그램에서 이 객체를 받을 때는  아래 소스처럼 받으시면 됩니다.

check_list = Request("check_list[]")
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.