posted by 구름너머 2006. 7. 27. 17:52

1.문제의 발단

자바스크립트로 입력값에 대한 숫자 검사를 insNumber(객체명)으로

처리를 하는 부분이 있었는데

for 루프에서 무한 루프를 돌아서 브라우져 경고 메시지가 뜨는 현상이 발생함!

소스는:

for (i=1 ; i<=cnt ; i++ ) {
trafficmonth = document.ADE_Data_list.NameValue(i, "TRAFFIC_MONTH");

if (isNumber(trim(trafficmonth)) != true)
{
alert("발생년월을 숫자로 입력하세요. ");
return;
}

}

만약 수정된 행이 7번째 이후 9행이면

1,2,3,4,5,6,7,8,9,7,8,9,7,8,9,.....

이런식으로 무한 루프에 빠지게 됨...

2.원인 및 분석

: isNumber에서 사용하는 내부 변수와 for 루프에서 사용하는 변수명이

같으므로 인해 생긴 문제로 추정됨!

3.해결방안

아래의 두가지 중 하나 선택하여 해결하여 보세요!^^

해결1) 문법대로 기술한다.-기초가 중요!!!

for(var i=1; i<=cnt ; i++) 이렇게....

해결2) 변수명을 바꾼다.

for(k=1; k<=cnt ; k++) 이렇게....