金額に3桁ごとにカンマを入れた、商品注文入力フォームを作りたいのですが、加算が出来ません。
困っています、どなたか教えてください。
よろしくお願いします。WinXP IE6.0を使っています。
(金額欄)
商品1×数量=商品1金額 計算OK
商品2×数量=商品2金額 計算OK
(商品明細欄)
商品1 商品名+個数+商品1金額 表示OK
商品2 商品名+個数+商品2金額 表示OK
合計(商品1+商品2)は、商品2の金額しか表示しないので、困っています。
(ソースコード)
function calcTotal() {
var intTotalPrice = 0;
var strEstimate = "\n------------------------------------------------------ \n"
+ " ご注文ご明細 \n"
+ "------------------------------------------------------ \n";
if (document.form1.buyItem1.checked == true) {
intTotalPrice= document.form1.prcItem1.value;
strEstimate = strEstimate + "商品1 :" + parseInt(document.form1.NumItem1.selectedIndex + 1) + "個 "
+document.form1.prcItem1.value + "円 \n";
}
if (document.form1.buyItem2.checked == true) {
intTotalPrice =document.form1.prcItem2.value;
strEstimate = strEstimate + "商品2 :" + parseInt(document.form1.NumItem2.selectedIndex + 1) + "個 "
+ document.form1.prcItem2.value + "円 \n";
}
strEstimate = strEstimate + "------------------------------------------------------ \n"
+ "ご注文合計 " + intTotalPrice + "円 ";
document.form2.tarEstimate.value = strEstimate;
}
No.2ベストアンサー
- 回答日時:
どうもカンマの除去がうまくできていないようですね。
(replaceのところ)理由はよくわからないです。テスト用のコードを書いたので、計算できるか
どうか試してください。なお、#1のコードだとカンマが複数入った場合に
問題があるので修正しました。
----------------------------------------------------------------------
<html>
<head>
<script language="JavaScript"><!--
function parseIntWithComma(strInt) {
var strNew = "";
for (var i = 0; i < strInt.length; i++) {
if (strInt.charAt(i) != ',') strNew += strInt.charAt(i);
}
return parseInt(strNew);
}
function calcTotal() {
var intTotalPrice = 0;
var strEstimate = "------------------------------------------------------ \n"
+ " ご注文ご明細 \n"
+ "------------------------------------------------------ \n";
intTotalPrice += parseIntWithComma(document.form1.prcItem1.value);
intTotalPrice += parseIntWithComma(document.form1.prcItem2.value);
strEstimate = strEstimate + "ご注文合計 " + intTotalPrice + "円 ";
document.form2.tarEstimate.value = strEstimate;
}
//-->
</script>
</head>
<body>
<form name="form1">
商品1<input type="text" name="prcItem1">円<br>
商品2<input type="text" name="prcItem2">円<br>
<button onclick="calcTotal()">見積もり</button>
</form>
<br>
<form name="form2">
<textarea name="tarEstimate" cols="60" rows="10" readonly>
金額を入力してから見積もりボタンをクリックしてください。
</textarea>
</form>
</body>
</html>
----------------------------------------------------------------------
全角スペースでインデントしているので削除してください。
再度のご回答、有難うございます。
加算、うまくゆきました。
助かりました。
しかし、#1でご指摘のとおり、3桁ごとの出力にはなっていませんが、ここのところを少々悩んでみます。
でも、本当に有難うございました。
No.4
- 回答日時:
加算の方法は、gimmickさんが丁寧に書いておられるので、わかったのでよね?自分でも加算はうまくいったと書いていますよね。
加算された数値にカンマを付けるところで悩んでいるのですよね?
それは、前に提示したソースのあなたが投げ出した部分が答えです。
この部分を理解せず、どのような回答を希望されているのか疑問です。
何度も、お世話になります。
ご指摘いただいた部分を、もう一度挑戦してみました。gimmickさんのご回答に、遂にカンマが入りました。後は、予定のフォームに仕上げるだけです。
この度は、本当に有難うございました。
No.3
- 回答日時:
>しかし、#1でご指摘のとおり、3桁ごとの出力にはなっていませんが、ここのところを少々悩んでみます。
もうこの問題も解決しましたよね?
前の質問で私が示したソースを本当に時間をかけて解析すればわかるはずですが。
この回答への補足
過日は、大変お世話になりました。
分析の結果、判明しましたのは、function testCalc以下の部分だけで、上の部分は不明のままです(今の私には、ちょっと難しすぎます)。
でも、お答えを参考にかなり前進させていただきましたが、加算の部分でつまづいてしまいました。
あつかましいお願いですが、加算の方法を教えていただければ、有難いのですが・・・
No.1
- 回答日時:
これでどうでしょうか? (出力は3桁区切りになりませんが)
1つ目のif文の
intTotalPrice = document.form1.prcItem1.value;
を
var strPrice1 = document.form1.prcItem1.value;
strPrice1.replace(",", "");
intTotalPrice += parseInt(strPrice1);
に変更。
同様に2つ目のif文を
intTotalPrice = document.form1.prcItem2.value;
を
var strPrice2 = document.form1.prcItem2.value;
strPrice2.replace(",", "");
intTotalPrice += parseInt(strPrice2);
に変更。
この回答への補足
早速のご回答、有難うございます。
ご指示通りやってみたのですが、
1,000円+10,000円=11円と表示されます。
お手数お掛けしまして、申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- スーパー・コンビニ ずっと前の出来事なのですが、相談させて下さい。 ある日コンビニにいって商品を3つ購入しました。レジに 2 2022/04/24 11:11
- 簿記検定・漢字検定・秘書検定 棚卸減耗損について 2 2022/05/19 04:48
- Excel(エクセル) 【エクセル関数】複数条件に該当する場合、別の列の数値を合算する。 9 2022/07/09 08:46
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- 営業・販売・サービス レジ打ちの仕事をしてる方 (飲食店や弁当屋等) レジ締めした時に金額が合わない場合は お釣りの渡した 1 2023/07/14 12:12
- docomo(ドコモ) Amazonでd払いで商品を購入しました。 3 2022/10/10 03:29
- 会社・職場 レジの打ち間違いについて お弁当屋でレジの仕事してるんですが… 1つの商品を打ち間違いして レジ締め 2 2023/07/14 14:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
クリックさせたいが、click()が...
-
onclickが動作しない
-
innerHTML内では改行は禁止?
-
VB.NETで<Input>タグ、<text...
-
複数のテキストボックスの値の...
-
JavaScriptによるnull判定
-
ボタン押下しテキストエリアに...
-
javascriptで作成されたテーブ...
-
ボタンかリンクをクリックする...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
Selectの中身をfor文で入れる
-
【jQuery】input nameの文字列...
-
hiddenのvalueの値を変えたい
-
javascriptでASPにデータを渡す
-
プルダウン選択を変更すると、...
-
javascriptでの2つのプルダウン...
-
ラジオボタンのチェックが外れ...
-
submitするとなぜか2度実行する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
iOSのみダブルタップが必要
-
onclickが動作しない
-
追加ボタンを押した際に ok ボ...
-
ボタンかリンクをクリックする...
-
innerHTML内では改行は禁止?
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックでテーブル内の背景色...
-
VB.NETで<Input>タグ、<text...
-
jQueryで設定したイベントハン...
-
開いた子ウィンドウにあるボタ...
-
javascriptで作成されたテーブ...
-
HTMLのテキストボックスへのド...
-
JavaScriptのfileオブジェクト...
-
テキストフィールド未入力の場...
-
オンクリックで現在時刻の取得→...
-
JSのボタンを複数う使うには
おすすめ情報