質問編集履歴
6
参考サイトの追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -195,11 +195,14 @@
|
|
|
195
195
|
プラグインの「Calculated Fields Form」を試したのですが、
|
|
196
196
|
求めているのとは少し違いました。
|
|
197
197
|
|
|
198
|
-
[
|
|
198
|
+
[参考サイト](https://teratail.com/questions/18734)
|
|
199
|
-
こちらの記事
|
|
199
|
+
こちらの記事を参考にしているのですが、1つの商品の場合だったので、
|
|
200
|
-
|
|
200
|
+
条件を変えるのが精一杯でした。
|
|
201
201
|
|
|
202
|
+
[参考サイト](https://qwerty.work/blog/2010/09/javascript-4.php)
|
|
203
|
+
その下のコードはこちらから引っ張ってきています。
|
|
204
|
+
|
|
202
|
-
[リンク
|
|
205
|
+
[リンク](https://sterfield.co.jp/designer/jquery%E3%81%A7%E9%87%91%E9%A1%8D%E3%82%92%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/)
|
|
203
206
|
こちらのデモも商品を選んで個数を選んで割引になるのですが、
|
|
204
207
|
個数がそれぞれで変更できないのと、入力できないのでダメです...
|
|
205
208
|
|
5
内容の変更
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
|
|
1
|
+
【計算フォーム】JavaScriptで複数の商品、個数に応じて割引
|
body
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
### 前提・実現したいこと
|
|
2
2
|
6つの商品があるとして、各それぞれ価格が違い、
|
|
3
3
|
まとめ買いをすると、数量によって価格が割引される。
|
|
4
|
-
(%
|
|
4
|
+
(割引は、%ではなく、多くなればなるほど割引が大きくなる個数に応じた割引価格)
|
|
5
5
|
|
|
6
|
-
商品は複数選択可能なようにして、プルダウン、ラジオボタン、チェックボタンは
|
|
6
|
+
商品は複数選択可能なようにして、プルダウン、ラジオボタン、チェックボタンは不問。
|
|
7
7
|
個数はインプットで数量を入力タイプ。
|
|
8
8
|
自動で値段表示でも、ボタンを押して表示でもどちらでもいいので
|
|
9
9
|
それで総合計を表示させたいです。
|
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
JavaScriptとHTMLで作ろうとしてしています。
|
|
13
13
|
|
|
14
14
|
### 発生している問題・エラーメッセージ
|
|
15
|
-
基礎的な計算フォームはネット上あるので、
|
|
15
|
+
基礎的な計算フォームはネット上に情報があるので、
|
|
16
16
|
それらを組み合わせたらなんとかなるかな?と思い、
|
|
17
17
|
色々と試行錯誤しましたが、お手上げ状態です。
|
|
18
18
|
|
|
19
19
|
載せているものはグチャグチャだと思うので、
|
|
20
|
-
|
|
20
|
+
既存のものをベースにして、足したり削ったりして、
|
|
21
|
+
求めているものになれ流ようにご指摘いただければ...
|
|
21
|
-
|
|
22
|
+
と思っております。
|
|
22
23
|
|
|
23
24
|
```
|
|
24
25
|
エラーメッセージ
|
4
コードの編集
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
var tax = 8; // 消費税率
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
var price1 = (document.form1.goods1.value) * document.form1.volume1.selectedIndex; // 数量×単価
|
|
64
|
+
var price1 = eval(document.form1.goods1.value) * document.form1.volume1.selectedIndex; // 数量×単価
|
|
65
|
-
var price2 = (document.form1.goods2.value) * document.form1.volume2.selectedIndex;
|
|
65
|
+
var price2 = eval(document.form1.goods2.value) * document.form1.volume2.selectedIndex;
|
|
66
|
-
var price3 = (document.form1.goods3.value) * document.form1.volume3.selectedIndex;
|
|
66
|
+
var price3 = eval(document.form1.goods3.value) * document.form1.volume3.selectedIndex;
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
var total1 = parseInt(price1) + parseInt(price2) + parseInt(price3); // 合計を計算
|
3
文章の変更
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
それらを組み合わせたらなんとかなるかな?と思い、
|
|
17
17
|
色々と試行錯誤しましたが、お手上げ状態です。
|
|
18
18
|
|
|
19
|
+
載せているものはグチャグチャだと思うので、
|
|
20
|
+
これを足したり削ったりして、求めているものに
|
|
21
|
+
なれば...と思います。
|
|
22
|
+
|
|
19
23
|
```
|
|
20
24
|
エラーメッセージ
|
|
21
25
|
```
|
2
タグの修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -57,12 +57,12 @@
|
|
|
57
57
|
var tax = 8; // 消費税率
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
var price1 = (document.form1.goods1.value) * document.form1.volume1
|
|
60
|
+
var price1 = (document.form1.goods1.value) * document.form1.volume1.selectedIndex; // 数量×単価
|
|
61
|
-
var price2 = (document.form1.goods2.value) * document.form1.volume2
|
|
61
|
+
var price2 = (document.form1.goods2.value) * document.form1.volume2.selectedIndex;
|
|
62
|
-
var price3 = (document.form1.goods3.value) * document.form1.volume3
|
|
62
|
+
var price3 = (document.form1.goods3.value) * document.form1.volume3.selectedIndex;
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
var total1 = parseInt(price1)+ parseInt(price2)+ parseInt(price3); // 合計を計算
|
|
65
|
+
var total1 = parseInt(price1) + parseInt(price2) + parseInt(price3); // 合計を計算
|
|
66
66
|
var tax2 = Math.round((total1 * tax) / 100); //消費税を計算
|
|
67
67
|
|
|
68
68
|
// フォームのテキストエリアに表示する金額
|
|
@@ -86,10 +86,9 @@
|
|
|
86
86
|
### HTML
|
|
87
87
|
```
|
|
88
88
|
<input type="text" id="num" placeholder="10">
|
|
89
|
-
|
|
89
|
+
<input type="button" value="購入価格の表示" onclick="keisan()">
|
|
90
|
-
|
|
90
|
+
<div id="showMoney"></div>
|
|
91
91
|
|
|
92
|
-
|
|
93
92
|
<p>下記項目を選択すると自動計算します。</p>
|
|
94
93
|
<form name="form1" action="" id="form1" method="post">
|
|
95
94
|
<table>
|
|
@@ -102,9 +101,9 @@
|
|
|
102
101
|
<td>果物</td>
|
|
103
102
|
<td><select name="price1" onChange="keisan()">
|
|
104
103
|
<option value="0" selected="selected">選択してください</option>
|
|
105
|
-
<option value="1000"
|
|
104
|
+
<option value="1000">すいか 1,000円</option>
|
|
106
|
-
<option value="450"
|
|
105
|
+
<option value="450">いか 450円</option>
|
|
107
|
-
<option value="
|
|
106
|
+
<option value="650">か 650円</option>
|
|
108
107
|
</select></td>
|
|
109
108
|
<td>
|
|
110
109
|
<input type="text" id="num1" placeholder="10">
|
1
コード表示部分の修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### 該当のソースコード
|
|
24
|
+
```
|
|
24
25
|
<script type="text/javascript">
|
|
25
26
|
<!--
|
|
26
27
|
function keisan(){
|
|
@@ -80,9 +81,10 @@
|
|
|
80
81
|
|
|
81
82
|
// -->
|
|
82
83
|
</script>
|
|
84
|
+
```
|
|
83
85
|
|
|
84
|
-
|
|
85
86
|
### HTML
|
|
87
|
+
```
|
|
86
88
|
<input type="text" id="num" placeholder="10">
|
|
87
89
|
<input type="button" value="購入価格の表示" onclick="keisan()">
|
|
88
90
|
<div id="showMoney"></div>
|
|
@@ -184,7 +186,7 @@
|
|
|
184
186
|
</table>
|
|
185
187
|
</form>
|
|
186
188
|
</div>
|
|
187
|
-
|
|
189
|
+
```
|
|
188
190
|
### 試したこと
|
|
189
191
|
プラグインの「Calculated Fields Form」を試したのですが、
|
|
190
192
|
求めているのとは少し違いました。
|