'가변변수'에 해당되는 글 1건

  1. 2008.12.09 [펌]javascript 가변변수
분류없음2008.12.09 11:33

Javascript를 이용한 eval함수는 대부분 알고 있을것이다

그래도 설명을 해보면


for(i=1;i<10;i++){

a[i-1] = eval("document.form.st"+i+".value");

}

<input type="text" name="st1">

<input type="text" name="st2">

<input type="text" name="st3">

<input type="text" name="st10">


이런경우 각 st1~st10까지의 값을 배열 a에 넣게 된다

(참고로 배열은 0부터 시작함으로 i-1로 하였다)


이렇게 처리하는 것은 대부분 알고 있다...


그래서 반대로 처리하고 싶은 경우가 있다

가변형 필드값에 값을 넣을경우


eval("document.form.st"+i+".value") = a[i-1];


라고 할경우 브라우져는 가차없이 에러를 떨어뜨린다.

에러의 내용은 함수결과에 할당할수 없습니다 라고 에러를 떨어뜨린다 ㅠ.ㅠ


맞다 eval은 함수로서 결과를 나타내는것이지 함수에 argument로 입력하지 않고

변수를 대입하려고 하는 그자체가 문제가 되는것이다.

일단 지원되는 경우도 있으나 eval()자체가 지원하지 않는다.


그러면 방법은 있는것인가?


방법은 구현하는 형태에 따라 다르겠지만 여기서는 eval()함수를 이용해보자

eval함수의 경우는 문자열을 그대로 실행하는 형태로서 eval()함수에 변수를 대입하지말고

좌우변을 모두 eval에 넣는 방법이 있다..

아래를 보면

eval("document.form.st"+i+".value = a["+(i-1)+"]");

이런식으로 하면 eval의 결과값은 true/false로 리턴되며


내부의 내용은 실행처리된다.


이렇게 하면 eval함수를 이용하여 가변변수에 값을 할당할수 있다.


이부분찾느라 고생했습니다.

다른 방법도 있겠으나.유용한 eval()을 쓰면 쉽게 구현이 가능하여집니다.


도움이 되셨기를

Posted by 스진

티스토리 툴바