ホームページ用見積もりフォーム
商品の値段を合計する。
一個ずつ足しての計算で処理してるのですが、商品がかなりの数になりそうです。
エクセルのSUMのように商品1から商品1000までを計算する関数を教えていただきたいと思っています。
JavaScriptは外部参照しています。
以下がJavaScriptのコードになります。
function keisan(){
// 設定開始
var tax = 5; // 消費税率
// 商品1
var price1 = document.form1.goods1.options[document.form1.goods1.selectedIndex].value;
// 商品2
var price2 = document.form1.goods2.options[document.form1.goods2.selectedIndex].value;
// 商品3
var price3 = document.form1.goods3.options[document.form1.goods3.selectedIndex].value;
// 合計を計算
var total1 = parseInt(price1) + parseInt(price2) + parseInt(price3);
// 設定終了
document.form1.field_total1.value = editNumberSeparated(total1); // 合計を表示
var tax2 = Math.round((total1 * tax) / 100);
document.form1.field_tax.value = editNumberSeparated(tax2); // 消費税を表示
document.form1.field_total2.value = editNumberSeparated(total1 + tax2); // 税込合計を表示
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>エクセルのSUMのように商品1から商品1000までを計算する関数を教えていただきたい
残念ながら、SUMのような関数は用意されていないので、自分で作ることになります。
合計する値の要素に規則性があるでしょうから、それを利用してループで処理をするのが良いのではないでしょうか。
http://www.atmarkit.co.jp/ait/articles/1007/28/n …
http://www.site-cooler.com/kwl/jslibrary/7.htm
同じループ処理にするにしても、いくつか考え方があると思います。
例えば、
1)form1内の要素を順に見ていって、名前がgoodsで始まるセレクト要素の値を集計する。
2)1~1000までの変数iについて、form1内の名前がgoods + iの要素の値を集計する。
3)form1内のselect要素で、defaultのoption以外が選ばれているものだけを集計する。
などなど…
ご提示の情報だけからではどのような考え方が最適なのかはわかりかねますが、ご質問分でご提示のコードは2)の考え方に近いと思います。
ただし、2)の場合は商品の数が変わる度にコードを修正しなければならないですし、番号が飛んでいたらエラーになるなどが予想されますので、1)や3)の考え方を取り入れて商品の数や番号が変わっても動作するような考え方で算出するようにしておくほうがよいのではないかと想像します。
それで、できたものを
function SUM(formName){ ~~ }
のようにしておけば、指定form内の集計をしてくれる、SUM関数ができたことになります。
fujillinさん。こんばんは。
丁寧なアドバイスをありがとうございます。
まだまだ初心者なので、時間が掛かるかと思いますが、頑張っていきます!!
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
ボタンかリンクをクリックする...
-
追加ボタンを押した際に ok ボ...
-
javaScriptの変数をJavaの変数...
-
クリックさせたいが、click()が...
-
開いた子ウィンドウにあるボタ...
-
テキストフィールド未入力の場...
-
JavaScriptのfileオブジェクト...
-
JSのボタンを複数う使うには
-
onclickが動作しない
-
innerHTML内では改行は禁止?
-
フォームにて自動計算したい・・・
-
onClickがinput type="image"だ...
-
ポップアップブロックにならな...
-
テキストの背景色を変える。
-
INPUTでデフォルト値(数...
-
JavaScriptでIE上のボタンクリック
-
VB.NETで<Input>タグ、<text...
-
ひとつのボタンでタイマーを動...
-
クリックでテーブル内の背景色...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavascriptでDOM-based XSSの発...
-
onclickが動作しない
-
クリックさせたいが、click()が...
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
ボタンかリンクをクリックする...
-
formのfileの値をhiddenでも持...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
VB.NETで<Input>タグ、<text...
-
受け取ったパラメータが文字化け
-
JQueryでfunctionに引数としてI...
-
javascriptで作成されたテーブ...
-
jQueryで設定したイベントハン...
-
開いた子ウィンドウにあるボタ...
-
コードレビューをお願いします。
-
ボタンをクリックするとテキス...
-
BackSpaceしたい(QNo.2734284の...
-
URL 判定
おすすめ情報