アプリ版:「スタンプのみでお礼する」機能のリリースについて

チェックボックスや、ラジオボタンで、選択した項目の金額を、最後にテキストフォームに表示させる…というやり方を探しております

ソース途中からですが…↓
<tr>
<Td Valign="middle" Width="80">部数選択</td>
<Td Align="center" Valign="middle"><必須></td>
<Td>
<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>
</td>
</tr>
<tr>
<Td Valign="middle" Width="80">オプション選択<Br>(複数選択可)</td>
<Td Align="center" Valign="middle"><必須></td>
<Td>
<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="ゲスト紹介">ゲスト紹介<Br>
<Input Type="checkbox" Name="op[]" value="QRコード">QRコード<Br>
</td>
</tr>

といった感じです。
value はすでに、他のところで使用しています
単純に計算だけを目的とさせているんですが、どうしたら良いでしょうか?

A 回答 (4件)

<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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/03 09:36

<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>
    • good
    • 0

こんな感じでしょうか?



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をインデックスにして計算してしまえばよいのでは?)

勘違いしてたら、無視してください。
    • good
    • 0

で、心のテキストフィールドが見当たりませんが・・・


またボタンを押して計算するのか、
チェックをつけるたびに再計算するのか
その辺の補足があるとよいかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!