테스트 사이트 - 개발 중인 베타 버전입니다

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

레스트ㅡ제윤아빠 10년 전 조회 4,072

</p><p><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>​</p><p>

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

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

현재 "";

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

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

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

조언 좀 부탁 드립니다.

 

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

답변 2개

채택된 답변
+20 포인트
10년 전

</p><p>function sum() {</p><p>   var obj = document.getElementsByName("money[]");</p><p>   var total = 0;</p><p>   for(i=0; i<obj.length; i++) {</p><p>      total += parseInt(obj[i].value);
   }</p><p>   alert(total);
}​</p><p>

 

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 8개

레스트ㅡ제윤아빠
10년 전
어렵네요 ㅠㅠ
올려주신 소스를 넣으니 동적 추가가 또 않되구요...ㅠ
왕계란
10년 전
저 링크로 가 보면 아시겠지만 addItem()이랑 delItem() 이 함수랑 관련된 건 아예 건들지도 않았는데 기존 스크립트가 작동을 안 한다는 건 다른 부분이 문제라고 볼 수밖에 없겠네요.
하나식 찍어 보면서 테스트 해 보시는 수밖에 없겠네요.
레스트ㅡ제윤아빠
10년 전
아하...ㅠ 숫자 합이 잘 되네요.
혹시 sum 클릭 및 alert의 값 확인 말고...
<span id="total></span>
이런식으로 출력이 되게 할수도 있을까요 ? ㅠ
레스트ㅡ제윤아빠
10년 전
무지하더라도 이해 부탁드립니다. ㅠ
왕계란
10년 전
document.getElementById("total").innerHTML = total;
이런 식으로 하시면 될 것 같네요.
근데 자바스크립트 변수명이랑 중복되니까 다른 이름으로 바꾸시는 게 ㅎㅎ
레스트ㅡ제윤아빠
10년 전
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>
이렇게 하니...클릭하면 나오는군요 ㅎ 감사합니다.
혹 클릭하지 않고 실시간 반영도 가능한지요...ㅠ 자꾸 물어 죄송합니다 ㅠㅠ
왕계란
10년 전
addItem() 함수 제일 밑에
newTd.onkeyup = function() {
sum();
};
넣어 보세요.
레스트ㅡ제윤아빠
10년 전
진심으로 감사드립니다.

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

d
10년 전

"money[]" onChange="money_sum();"  align=absmiddle >";

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

function money_sum(){

전체 합계 로직

} 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

레스트ㅡ제윤아빠
10년 전
전...체 합계 로직이라면...
어떤식으로 잡아야할지 ㅠㅠ

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

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

로그인