###前提・実現したいこと
Javascriptで計算フォームを作りたいです。
###発生している問題・エラーメッセージ
一つ目のラジオボタンはきちんと動くのですが、
二つ目のselectボタンを選ぶと
f is undefined
とエラーが出てしまいます。
###該当のソースコード
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>計算フォーム見本</title> <style type="text/css"> table { border-collapse: collapse; } table, th, td { border: 1px #808080 solid; } th, td { padding: 3px 10px; } th { background-color: #d3e9fa; } td { background-color: #ffffff; } td strong { color: #ff0000; } </style> <script type="text/javascript"> function keisan(f){ // 設定開始 var tax = 8; // 消費税率 // ウォーターサーバー var price1 = Number(getRadioValue("server")); function getRadioValue(n) { for(var i = 0, j = f.elements[n].length; i < j; i++) { if(f.elements[n][i].checked) { return f.elements[n][i].value; } } return null; }; document.form1.field1.value = price1; // ウォーターサーバーを表示 // お店の代金について var price2 = document.form1.goods2.selectedIndex * 1000; // 単価を設定 document.form1.field2.value = price2; // 小計を表示 // お店の送料について var price3 = document.form1.goods3.selectedIndex * 3000; // 単価を設定 document.form1.field3.value = price3; // 小計を表示 // 合計を計算 var total1 = price1 + price2 + price3; // 設定終了 document.form1.field_total1.value = total1; // 合計を表示 var tax2 = Math.round((total1 * tax) / 100); document.form1.field_tax.value = tax2; // 消費税を表示 document.form1.field_total2.value = total1 + tax2; // 税込合計を表示 } </script> </head> <body> <form action="#" name="form1" class="form1"> <table> <tr> <th>商品名</th> <th>単価</th> <th>数量</th> <th>金額</th> </tr> <tr> <td>ウォーターサーバー</td> <td colspan="2" align="right" nowrap><input type="radio" name="server" value="0" onClick="keisan(this.form)"> レンタルコース <input type="radio" name="server" value="18334" onClick="keisan(this.form)"> 買取コース</td> <td><input type="text" name="field1" size="8" value="0"> 円</td> </tr> <tr> <td>お水の代金について</td> <td align="right">1,000円</td> <td><select name="goods2" onChange="keisan()"><option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select></td> <td><input type="text" name="field2" size="8" value="0"> 円</td> </tr> <tr> <td>お水の送料について</td> <td align="right"> </td> <td><select name="goods3" onChange="keisan()"><option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select></td> <td><input type="text" name="field3" size="8" value="0"> 円</td> </tr> <tr> <td align="right" colspan="3">合計</td> <td><input type="text" name="field_total1" size="8" value="0"> 円</td> </tr> <tr> <td align="right" colspan="3">消費税</td> <td><input type="text" name="field_tax" size="8" value="0"> 円</td> </tr> <tr> <td align="right" colspan="3"><strong>税込合計</strong></td> <td><input type="text" name="field_total2" size="8" value="0"> 円</td> </tr> </table> <br> <input type="submit" value="送信する"> </form> </body> </html>###補足情報(言語/FW/ツール等のバージョンなど)
解る人なら、すぐに解る気がします。
どうか、よろしくお願いいたします。
コードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
回答2件
あなたの回答
tips
プレビュー