채택완료

자바스크립트 합계에 대한 질문 입니다. ㅠ

2015-07-17 (금) 12:21:55 4,271
Copy
<script language="javascript">function addItem() {      var lo_table = document.getElementById("TblAttach");      var row_index = lo_table.rows.length;      // 테이블(TR) row 개수      newTr = lo_table.insertRow(row_index);      newTr.idName = "newTr" + row_index;       newTd=newTr.insertCell(0);      newTd.innerHTML= "<input type=text name="situation[]" align=absmiddle >";       newTd=newTr.insertCell(1);      newTd.align = "center";      newTd.innerHTML= "<input type=text name="money[]" align=absmiddle >";}function delItem(){      var lo_table = document.getElementById("TblAttach");      var row_index = lo_table.rows.length-1;      // 테이블(TR) row 개수       if(row_index > 0) lo_table.deleteRow(row_index);    }</script>​

해당의 소스로 추가 버튼을 누르게 되면

입력창이 2개가 나오며, 추가 버튼이 누르면 아래로 계속 추가가 되어집니다.

현재 "<input type=text name="money[]" align=absmiddle >";

이곳에서 입력되는 숫자들에 대해 합계를 구하려고 하는데...

자스는 정말 어렵네요...

동적으로 추가 될때마다 자동으로 합산이 되었으면 하는데...

조언 좀 부탁 드립니다.

|

답변 2개 / 댓글 9개

채택된 답변
+20 포인트
2015-07-17 (금) 13:25:01
Copy
function sum() {   var obj = document.getElementsByName("money[]");   var total = 0;   for(i=0; i<obj.length; i++) {      total += parseInt(obj[i].value);   }   alert(total);}​

이런 식으로 하면 되겠네요.

http://nyaongii.dothome.co.kr/temp/wrid_81862.html 

답변에 대한 댓글 8개

2015-07-17 (금) 14:05:55
어렵네요 ㅠㅠ
올려주신 소스를 넣으니 동적 추가가 또 않되구요...ㅠ
저 링크로 가 보면 아시겠지만 addItem()이랑 delItem() 이 함수랑 관련된 건 아예 건들지도 않았는데 기존 스크립트가 작동을 안 한다는 건 다른 부분이 문제라고 볼 수밖에 없겠네요.
하나식 찍어 보면서 테스트 해 보시는 수밖에 없겠네요.
2015-07-17 (금) 15:49:49
아하...ㅠ 숫자 합이 잘 되네요.
혹시 sum 클릭 및 alert의 값 확인 말고...
<span id="total></span>
이런식으로 출력이 되게 할수도 있을까요 ? ㅠ
2015-07-17 (금) 15:50:31
무지하더라도 이해 부탁드립니다. ㅠ
document.getElementById("total").innerHTML = total;
이런 식으로 하시면 될 것 같네요.
근데 자바스크립트 변수명이랑 중복되니까 다른 이름으로 바꾸시는 게 ㅎㅎ
2015-07-17 (금) 16:01:39
function sum() {
var obj = document.getElementsByName("money[]");
var total = 0;
for(i=0; i<obj.length; i++) {
total += parseInt(obj[i].value);
}
document.getElementById("total_money").innerHTML = total;
//alert(total);
}
해당 형식 으로하고,
<table>
<tbody>
<th>합계</th>
<td>\<span id="total_money" onClick="sum();">클릭</span></td>
</tbody>
</table>
이렇게 하니...클릭하면 나오는군요 ㅎ 감사합니다.
혹 클릭하지 않고 실시간 반영도 가능한지요...ㅠ 자꾸 물어 죄송합니다 ㅠㅠ
addItem() 함수 제일 밑에
newTd.onkeyup = function() {
sum();
};
넣어 보세요.
2015-07-17 (금) 18:01:28
진심으로 감사드립니다.

"<input type=text name="money[]" onChange="money_sum();"  align=absmiddle >";

이부분에 onChange="money_sum();" 넣으시고 함수 생성하시면 될듯 합니다


function money_sum(){

전체 합계 로직

} 

답변에 대한 댓글 1개

2015-07-17 (금) 12:38:28
전...체 합계 로직이라면...
어떤식으로 잡아야할지 ㅠㅠ

답변을 작성하려면 로그인이 필요합니다.