JavaScript初心者ですが自動計算フォームを作成しようと考えています。
自分なりに調べて見ましたがどうしてもわからないことがたくさんあり実現方法をご教授いただけると助かります。
1ラジオボタンの数値を合計からマイナスする
2合計の数値が一定以上の時(仮で10000以上)送料の数値を-100から0にする
3合計金額の特定の条件の時priceの値を変える方法
4合計した時の数値の小数点の切り捨て
調べても自動計算までしか出て来ずに困っております。
html
1 2<form action="#" name="form1"> 3<table border="1" style="background-color: #ffffff;"> 4<tr> 5<td>商品画像</td> 6<td>商品1</td> 7<td align="right">106.22</td> 8<td><input type="text" name="goods1" onChange="keisan()" size="2"></td> 9<input type="hidden" name="field1" size="8" value="0"> 10</tr> 11<tr> 12<td>商品画像</td> 13<td>商品2</td> 14<td align="right">106.22</td> 15<td><input type="text" name="goods2" onChange="keisan()" size="2"></td> 16<input type="hidden" name="field2" size="8" value="0"> 17</tr> 18<tr> 19<td>商品画像</td> 20<td>商品3</td> 21<td align="right">106.22</td> 22<td><input type="text" name="goods3" onChange="keisan()" size="2"></td> 23<input type="hidden" name="field3" size="8" value="0"> 24</tr> 25<tr> 26<td> 27<input name="" type="radio" value=""> 送料(100) 28<input name="" type="radio" value=""> 速達(500) 29</td> 30</tr> 31<tr> 32<td align="right" colspan="3">合計</td> 33<td><input type="text" name="field_total1" size="8" value="0"> 円</td> 34</tr> 35</table> 36 37</form>
javascript
1function keisan(){ 2var price1 = document.form1.goods1.value * 106.22; 3document.form1.field1.value = price1; 4var price2 = document.form1.goods2.value * 106.22; 5document.form1.field2.value = price2; 6var price3 = document.form1.goods3.value * 106.22; 7document.form1.field3.value = price3; 8var total1 = price1 + price2 + price3; 9document.form1.field_total1.value = total1; 10}
>java初心者
細かいのですが、JavaとJavaScriptは全く別物なので、表記・表現にはお気を付けください。
あと、今回はPHPは関係ないのでは?タグを外しておいてください。
また、コードはインデントをきちんとつけておいてください(Web上のサービスもありますができれば構文チェックやフォーマット機能の付いたエディタをお使いください)
質問の冒頭に「java初心者ですが」とありますが、質問の内容はJavaScriptですので誤解を招かないようにJavaScriptに修正してください。
JavaとJavaScriptは全くの別物です。JavaScriptを略してJavaにすることはありません。
具体的な計算例を記載してください。
すべて「商品1」となっていますが、上から順番にどのような入力値になったときに結果としてはどのような値を表示したいのか例を示してください。
ところで条件の中に「合計の数値が一定以上の時(10000)Aの数値を0にする」とありますが、Aの値とは、もしかして送料無料とかの意味でしょうか?
どんなことをしようとしているのか隠さずにイメージを共有したほうが的確な回答が得られやすいですよ。
すみませんでした。以後気をつけます。
「1000までの時は」とは何が1000なのですか?
「price1の数値を104.22」とはどういうことでしょうか?
おそらく「商品価格が1000円未満の場合は(何らかの手数料)が104.22円として計算する」などの意図なのでしょうが…。諸々説明が足りていないので不明なことが多いのです…。
文章を少し変えました。
カートに入れて計算した時の合計金額が5000円までは商品の単価が一つ初期の104.22で計算されて、合計金額が5000以上は商品単価が106.22で、更に合計金額が20000以上になると商品単価を112.22に数値を任意の値に変化させるといった考えなのですが、説明が下手で申しわせありません・・・
さっきから基準となる数字までごちゃごちゃに変わってますが、なぜそんなことになるんでしょうか…。
新しい単語が出てきましたね。「カートに入れて計算した時の合計金額」はこの画面に表示されている「合計」とは異なるものでしょうか?
これが同じ場合、「まず104.22で計算したら5000円以上になったので106.22で計算し直す」というわけのわからない状態が生まれます。
再度調べたところ自分が実現したいことと近いものを見つけたものの原理がわからずで困っております。
以下のサイトの計算フォームのようなものを作りたいのですが、どうしたら良いでしょうか?
まず「自分が実現したいこと」をしっかりかためられるよう強くすすめます。
そうですよね。
もう一度実現したいことを明確にできるように考え直します。