Javascriptを利用して金額計算を行っているプログラムがあります。
それらは、document.getElementByClassName("a").valueやらを利用し、
値を取得しながら計算を行っています。
画面の表示は**'450000'や'9800'**の様に表示されています。
この画面の表示を**'450,000'や'9,800'**の様な表記に変更するために
下記のようなプログラムで、設定を行いました。
Javascript
1var Kingaku = document.getElementsByClassName("a"); 2 // フォーカスアウト 3 $(Kingaku).on('change blur', function(){ 4 var num = $(this).val(); 5 num = num.replace(/(\d)(?=(\d\d\d)+$)/g, '$1,'); 6 $(this).val(num); 7 }).change(); 8 // フォーカス 9 $(Kingaku).on('focus', function(){ 10 var num = $(this).val(); 11 num = num.replace(/,/g, ''); 12 $(this).val(num); 13 });
しかし、このJavascriptを適応させると、事前に設定されていた計算部分に影響が出てしましました。
この場合は、計算部分のロジックを組みなおす方が良いのでしょうか。意見をいただけると幸いです。
##計算部分
var table = document.getElementById("ITEM"); var tr = document.getElementById("ITEM").getElementsByTagName("tr"); var RowCnt = tr.length; for (var i = 2; i < RowCnt; i++) { for(var k = 2; k < 9; k++) { var cnt = Number(table.rows[i].cells[k].children[0].value); if(isNaN(cnt)){ table.rows[i].cells[k].children[0].value = 0; } if(i == 2){ table.rows[1].cells[k - 2].children[0].value = 0; } table.rows[1].cells[k - 2].children[0].value = Number(table.rows[1].cells[k - 2].children[0].value) + Number(table.rows[i].cells[k].children[0].value.); }
ITEMというidを持ったテーブルの各行(i)の数値を、列(K)ごとに集計している。といった感じです。
forで随時、数値を加算していって、テーブルの行数分足し終えたら、1行目に各列ごとの合計値を表示している、といった流れになります。
回答2件
あなたの回答
tips
プレビュー