ポイント |
fObj = document.myFORM;
for (i=0; i<3; i++) if (fObj[i].checked) n += eval(fObj[i].value);
for (i=3; i<7; i++) if (fObj[i].checked) n += eval(fObj[i].value);
fObj.result.value = n;
fObj.tax.value = Math.round(n * 0.05);
fObj.total.value = n + Math.round(n * 0.05);
|
説 明 |
ラジオボタン、チェックボックスは「document.フォーム名.エレメント名.checked」としてチェックされているか調べます。「if (document.フォーム名.エレメント名.checked)」のように==で値を調べていない場合は、値がfalseでない場合に以後に続く命令を実行します。読み出したフォームのデータは文字列型となっているため+記号で加算すると文字列として連結されてしまいます。これを一旦数値に変換するためにeval()、parseInt()、parseFloat()などを使います。また「fObj = document.calcForm」としてフォームオブジェクトを代入しておくことで「document.caclForm.elements[0].value」または「document.caclForm[0].value」とすべき部分を「fObj.elements[0].value」または「fObj[0].value」として短く記述することができます。 |
サンプル |
選択された部品に応じて価格の計算をする
|
補足説明 |
ポップアップメニューの場合はcheckedでなくselectedを使って選択されているかどうかを調べます。 |
|
■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!
|