자바스크립트 좀 봐주세요..
본문
자바스크립트로 페이지 로딩 후 동적변수 생성 후 동적변수를 이용해서 합계를 낼려고 하는데요...
<script type="text/javascript">
$(document).ready(function() {
sum_tot();
});
function sum_tot(){ // 전체 합계
for( k=4; k < 20; k++) {
window["pay_"+k] = '0';
sum_tot1(k);
alert(k);
}
}
function sum_tot1(ik){ // 전체 합계
for( ikq=0; ikq<=<?=$i?>; ikq++) {
window["pay"+ikq+"_"+ik] = document.getElementById('pay'+ikq+'_'+ik).value;
if(window["pay"+ikq+"_"+ik] =='') { window["pay"+ikq+"_"+ik] = '0'; } else { window["pay"+ikq+"_"+ik]= window["pay"+ikq+"_"+ik].replace(/[^0-9]/g,'');}
window["pay_"+ik] = eval(window["pay_"+ik]) + eval(window["pay"+ikq+"_"+ik]);
document.getElementById('pay_'+ik).value = window["pay_"+ik].toLocaleString().split(".")[0];
}
}
</script>
sum_tot 함수에서 sum_tot1 호출할 경우 for문이 한 번 밖에 돌지가 않네요..
호출을 빼버리면 제대로 돌고요
제가 멀 잘못 알고 있는게 있는건가요?? ㅠ.ㅠ
답변 3
자바스크립트 변수로 window, document 같은 개체들을 사용하는 것은 아주 좋지않습니다
-------------------------------
for문이 한 번 밖에 돌지가 않네요 <--이것은 sum_tot1 호출시 이 함수에서 에러가 발생한 까닭입니다
IE에서 F12를 이용해서 에러를 살펴보세요
추측으로는
<input id='pay0_4'~~>이와 같은 id 값과 for문에서 읽어오려는 id값이 일치하지않아서
읽을 수 없기 때문에 에러가 발생하는 것으로 보입니다
sum_tot1 에서 오류가 발생하지는 않는지 확인해보세요.
$i 값은 어떻게? 넘어가나요~?
답변을 작성하시기 전에 로그인 해주세요.