ちょっと乱暴な書き方で冗長なコードになってしまいましたが解決できました。
js
1
2jQuery(function($) {
3
4 $(document).on('keyup', '#tanka', function(e) {
5 var suryo = $('#suryo').val();
6 var tanka = $('#tanka').val();
7 //parseIntで文字列を数値に
8 suryo = parseInt(suryo);
9 tanka = parseInt(tanka);
10 if (suryo == "" || tanka == "") {
11 $('tankaGokei').val("");
12 return false;
13 }
14
15 //計算結果を出力
16 var gokei = comma(suryo * tanka);
17 var gokeiComma = $('#tankaGokei').val(gokei);
18 });
19 $(document).on('keyup', '#tanka1', function(e) {
20 var suryo1 = $('#suryo1').val();
21 var tanka1 = $('#tanka1').val();
22 //parseIntで文字列を数値に
23 suryo1 = parseInt(suryo1);
24 tanka1 = parseInt(tanka1);
25 if (suryo1 == "" || tanka1 == "") {
26 $('tankaGokei1').val("");
27 return false;
28 }
29
30 //計算結果を出力
31 var gokei1 = comma(suryo1 * tanka1);
32 var gokeiComma1 = $('#tankaGokei1').val(gokei1);
33
34 });
35 $(document).on('keyup', '#tanka2', function(e) {
36 var suryo2 = $('#suryo2').val();
37 var tanka2 = $('#tanka2').val();
38 //parseIntで文字列を数値に
39 suryo2 = parseInt(suryo2);
40 tanka2 = parseInt(tanka2);
41 if (suryo2 == "" || tanka2 == "") {
42 $('tankaGokei2').val("");
43 return false;
44 }
45
46 //計算結果を出力
47 var gokei2 = comma(suryo2 * tanka2);
48 var gokeiComma2 = $('#tankaGokei2').val(gokei2);
49
50 });
51 $(document).on('keyup', '#tanka3', function(e) {
52 var suryo3 = $('#suryo3').val();
53 var tanka3 = $('#tanka3').val();
54 //parseIntで文字列を数値に
55 suryo3 = parseInt(suryo3);
56 tanka3 = parseInt(tanka3);
57 if (suryo3 == "" || tanka3 == "") {
58 $('tankaGokei3').val("");
59 return false;
60 }
61
62 //計算結果を出力
63 var gokei3 = comma(suryo3 * tanka3);
64 var gokeiComma3 = $('#tankaGokei3').val(gokei3);
65 });
66
67 // 自動計算
68 $(".keisan").click(
69 function() {
70 var tankaGokei = $('#tankaGokei').val();
71 var noCtankaGokei = noComma(tankaGokei);
72
73 var tankaGokei1 = $('#tankaGokei1').val();
74 var noCtankaGokei1 = noComma(tankaGokei1);
75
76 var tankaGokei2 = $('#tankaGokei2').val();
77 var noCtankaGokei2 = noComma(tankaGokei2);
78
79 var tankaGokei3 = $('#tankaGokei3').val();
80 var noCtankaGokei3 = noComma(tankaGokei3);
81
82 if (isNaN(noCtankaGokei)) {
83 noCtankaGokei = 0;
84 }
85 if (isNaN(noCtankaGokei1)) {
86 noCtankaGokei1 = 0;
87 }
88 if (isNaN(noCtankaGokei2)) {
89 noCtankaGokei2 = 0;
90 }
91 if (isNaN(noCtankaGokei3)) {
92 noCtankaGokei3 = 0;
93 }
94
95 // 小計を保持
96 var shokei = noCtankaGokei + noCtankaGokei1
97 + noCtankaGokei2 + noCtankaGokei3;
98
99 //固定 やりかたわからん
100 var shohizei = 0.1;
101
102 // 消費税額
103 var shohizeiGaku = Math.round(shokei * shohizei);
104
105 // 税込合計
106 var gokei = Math.round(shokei + shohizeiGaku);
107
108 // カンマをつける
109 var shohizeiGaku1 = comma(shohizeiGaku);
110 $('#shohizeiGaku').text(shohizeiGaku1);
111
112 var shokei1 = comma(shokei);
113 $('#zeinukiGokei').val(shokei1);
114
115 var gokei1 = comma(gokei);
116 $('#zeikomiGokei').val(gokei1);
117 });
118
119 /*
120 *
121 * 以下メソッド
122 *
123 */
124 //カンマを外す
125 function noComma(num) {
126 var removed = num.replace(/,/g, '');
127 return parseInt(removed, 10);
128 }
129
130 //カンマをつける
131 function comma(num) {
132 return String(num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
133 }
134
135 //税抜価格計算
136 function getExcludingTax(val){
137 //消費税率
138 const RATE = 0.1; //10%
139
140 //数値判定
141 if(val == null || val.trim() === "" || isNaN(val)){
142 return null;
143 }
144
145 //消費税計算(四捨五入) ※切捨てにしたい場合は、Math.floorに変更してください。
146 return Math.round(val / (1 + RATE));
147 }
148});