코드 좀 줄이고 싶어요
본문
소스 참고해서 만들고 있는데...
2줄은 했습니다.
이런 식으로 20행을 해야 하는데..
스크립트 엄청 길어질거 같은데..
줄일 수 있을련지요,,,
그리고 가로 합계금액은 class로 지정하고
맨밑에 all_total로 총계를 뽑고 싶은데...자바 class부분은
어떻게 처리해야 할지요,,
<script language='javascript'>
function sum(){
var f1_1 = document.getElementById('f1_1');
var f1_2 = document.getElementById('f1_2');
var f1_3 = document.getElementById('f1_3');
var f1_4 = document.getElementById('f1_4');
f1_4.value = Number(f1_1.value)*Number(f1_2.value)+Number(f1_3.value);
var f2_1 = document.getElementById('f2_1');
var f2_2 = document.getElementById('f2_2');
var f2_3 = document.getElementById('f2_3');
var f2_4 = document.getElementById('f2_4');
f2_4.value = Number(f2_1.value)*Number(f2_2.value)+Number(f2_3.value);
total.value = Number(f1_4.value)+Number(f2_4.value);
}
</script>
<INPUT id=f1_1 onkeyup="sum();">
<INPUT id=f1_2 onkeyup="sum();">
<INPUT id=f1_3 onkeyup="sum();">
<INPUT id=f1_4 clase=total><br>
<INPUT id=f2_1 onkeyup="sum();">
<INPUT id=f2_2 onkeyup="sum();">
<INPUT id=f2_3 onkeyup="sum();">
<INPUT id=f2_4 clase=total>
답변 3
<script language='javascript'>
function sum(n) {
var t = 0;
for(i=1; i<4; i++) {
t = t + Number(document.getElementById("f" + n + "_" + i).value);
}
document.getElementById("f" + n + "_4").value = t;
}
</script>
<INPUT id=f1_1 onkeyup="sum(1);">
<INPUT id=f1_2 onkeyup="sum(1);">
<INPUT id=f1_3 onkeyup="sum(1);">
<INPUT id=f1_4 name=total><br>
<INPUT id=f2_1 onkeyup="sum(2);">
<INPUT id=f2_2 onkeyup="sum(2);">
<INPUT id=f2_3 onkeyup="sum(2);">
<INPUT id=f2_4 name=total>
jquery로 처리하면 훨씬 간단하게 될 것 같은데 javascript로만 하셔서...
!-->앞에 f1부터 f20까지를 변수로 받아 처리하면 되지 않을까 싶습니다.
일일이 다 변수를 입력받아 처리하려면 코드가 길어질수 밖에 없는거라서요
일단 다 반영하고 submit 할때 total 변수를 한번에 적용해 주게 되면 할때마다 계산해 주면 되지 않을까 합니다.
일일이 total의 합산값을 보여줄 필요가 없다면요
<script language='javascript'>
function sum(num){
var f1_1 = document.getElementById('f'+num+'_1');
var f1_2 = document.getElementById('f'+num+'_2');
var f1_3 = document.getElementById('f'+num+'_3');
var f1_4 = document.getElementById('f'+num+'_4');
f1_4.value = Number(f1_1.value)*Number(f1_2.value)+Number(f1_3.value);
var total.value = 0;
$('.total').each(function() {
total.value += Number($(this).val());
});
}
</script>
<INPUT id=f1_1 onkeyup="sum(1);">
<INPUT id=f1_2 onkeyup="sum(1);">
<INPUT id=f1_3 onkeyup="sum(1);">
<INPUT id=f1_4 class="total" clase=total c><br>
<INPUT id=f2_1 onkeyup="sum(2);">
<INPUT id=f2_2 onkeyup="sum(2);">
<INPUT id=f2_3 onkeyup="sum(2);">
<INPUT id=f2_4 class="total" clase=total>
</script>
<INPUT id=f1_1 onkeyup="sum(1);">
<INPUT id=f1_2 onkeyup="sum(1);">
<INPUT id=f1_3 onkeyup="sum(1);">
<INPUT id=f1_4 clase=total><br>
<INPUT id=f2_1 onkeyup="sum(2);">
<INPUT id=f2_2 onkeyup="sum(2);">
<INPUT id=f2_3 onkeyup="sum(2);">
<INPUT id=f2_4 clase=total>