• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:チェックボックスやラジオボタンでの計算)

チェックボックスやラジオボタンでの計算方法

このQ&Aのポイント
  • チェックボックスやラジオボタンを使用して選択した項目の金額を、テキストフォームに表示させる方法を探しています。
  • 上記のソースコードでは、具体的な金額と部数の選択肢があります。さらに、複数のオプションも選択可能です。
  • 計算だけを目的としており、他の要素との結びつきは考慮していません。どのように実装すれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.3

<html> <body> <Input Type="radio" Name="pay" Value="100部 10000円">100部 ¥10,000円<Br> <Input Type="radio" Name="pay" Value="150部 20000円">150部 ¥20,000円<Br> <Input Type="radio" Name="pay" Value="200部 30000円">200部 ¥30,000円<Br> <Input Type="radio" Name="pay" Value="300部 40000円">300部 ¥40,000円<Br> <Input Type="radio" Name="pay" Value="300部以上 ※お見積もりいたします">300部以<br> <input type="text" id="a"> <input type="button" value="Get Value" onClick="viewRadioValue('pay')"><br> <script> function viewRadioValue(n){ var val = getRadioValue(n), s; if(val) document.getElementById('a').value = (s=val.match(/ (\d*)円$/),(s?s[1]-0:'不明')); } function getRadioValue(n){ for(var i=0,e=document.getElementsByName(n),mx=e.length;i<mx;i++) if(e[i].checked) return e[i].value; } </script>

raisa2201
質問者

お礼

試してみたら、ちゃんと計算できていました! 説明足らずな文でしたのに、ちゃんと動き感謝しています ありがとうございます

その他の回答 (3)

noname#84373
noname#84373
回答No.4

<html> <body> <Input Type="checkbox" Name="op[]" value="地図を入れる">地図を入れる100円<Br> <Input Type="checkbox" Name="op[]" value="先生のプロフィールを入れ">先生のプロフィールを入れる<Br> <Input Type="checkbox" Name="op[]" value="ごあいさつを入れる">ごあいさつを入れる<Br> <Input Type="checkbox" Name="op[]" value="生徒募集中を入れ">生徒募集中を入れる<Br> <Input Type="checkbox" Name="op[]" value="写真を入れる">写真を入れる<Br> <Input Type="checkbox" Name="op[]" value="ゲスト紹介">ゲスト紹介<Br> <Input Type="checkbox" Name="op[]" value="QRコード">QRコード700円<Br> <input type="text" id="a"> <input type="button" value="Get Value" onClick="view('op[]')"><br> <script> function view(n){ var e = document.getElementsByName(n); for(i=0,t=0,mx=e.length;i<mx;t+=[100,200,300,400,500,600,700,800][i]*e[i++].checked) ; document.getElementById('a').value = t; } </script>

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

こんな感じでしょうか? function test(){ var elm = document.getElementsByTagName('input'); var pay_sum = ''; var op_sum = '';  for (i = 0; i < elm.length; i++) {   if (elm[i].name=='pay') {    if (elm[i].checked) pay_sum = elm[i].value;   } else {    if ((elm[i].name=='op[]')&&(elm[i].checked)) op_sum += '/' + elm[i].value;   }  } alert(pay_sum + '\n' + op_sum); } valueしか拾ってませんが、これを金額に換算するのはどこかに料金表でもあるのでしょうからそれで計算をして、その結果をテキストフィールドに放り込めばよろしいかと・・・ >value はすでに、他のところで使用しています >単純に計算だけを目的とさせているんですが~~ あれっ、値はすでに取れているみたいですね。 なんか意味を勘違いしたかも・・・ 計算だけなら、料金表を作っておいて、そこを参照して集計すればよいのでは? (例えば、↑のような場合フォームの値を取り込むときに、同時にiをインデックスにして計算してしまえばよいのでは?) 勘違いしてたら、無視してください。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

で、心のテキストフィールドが見当たりませんが・・・ またボタンを押して計算するのか、 チェックをつけるたびに再計算するのか その辺の補足があるとよいかと思います。