ラジオボタンで、選択させて金額は表示できたのですが…
部数が取得できませんでした。
同時に変更できるようにしたいのです
例えば、Atextと、Btextが、あるとします。
ラジオボタンをチェックした瞬間に、チェックしたボタンの部数はAtext
金額は、Btextにそれぞれ表示させたいです。
どなたか、教えていただけませんでしょうか?
現在は金額のみ表示できるようになっております
<html>
<Title></Title>
<head>
<script type="text/javascript">
<!--
function calculate(){
//合計金額を格納する変数の値を初期値0として設定。
totalValue = 0;
X = 0;
F = 0;
theForm = document.myForm;
X = theForm.pay.length;
F = X-1;
//選択されているラジオボタンを調べ、そのラジオボタンのvalueの値を数値化して変数totalValueに追加。
for (i=0;i<X;i++){
if(theForm.pay[i].checked)totalValue += eval(theForm.pay[i].value);
theForm.totalPay.value = Math.round(totalValue*0.00)+totalValue;
if(theForm.pay[F].checked)theForm.totalPay.value = '別途';}
}
-->
</script>
</head>
<body>
<form name="myForm" method="post" action="shop.cgi">
<Div class="hyou">>>価格(税込み)※計算用の仮値段<Br></div>
<Table Border="1" Align="left" CellPadding="3">
<TR><TD>
<Input Type="radio" Name="pay" Value="12000" onClick="calculate()">100部</td>
<td>12,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="pay" value="14000" onClick="calculate()">150部</td>
<td>14,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="pay" value="15000" onClick="calculate()">200部</td>
<td>15,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="pay" value="16000" onClick="calculate()">300部</td>
<td>16,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="pay" value="0" onClick="calculate()">300部以上</td>
<td>※お見積もりいたします</td>
</tr>
<tr>
<td><B>選んだ部数</B><Br><font size="2">(実際は非表示)</font></td>
<td><INPUT name="busuu" type="text" size="24" value="" readonly> 部</td>
</tr>
<tr>
<td><B>商品価格</B><Br><font size="2">(実際は非表示)</font></td>
<td><INPUT name="totalPay" type="text" size="24" value="" readonly> 円</td>
</tr>
</table>
</FORM>
</body>
</html>
No.2ベストアンサー
- 回答日時:
>そうすると、CGIに対比表を追加しなければならないのですよね
>現在動いてるCGIの記述をあまり変えたくないので、二つの
>フィールドに表示したいのです。
(1)CGIに対比表を追加するのは当たり前のことです。
たとえばユーザーがデータを改ざんしてbusuu=100、totalPay=10
などでおくってきたら、10円で仕事をなさるつもりですか?
よくよく考えて運用しないと痛い目をみるのは質問者さん自身です。
(2)前回提示したデータでbusuuとtotalPayの2つが送られるように
してありますが、ちゃんと検証なさっていますか?
>よくよく考えて運用しないと痛い目をみるのは質問者さん自身です。
そうですよね。
もうちょっと考えます。ありがとうございました
>ちゃんと検証なさっていますか?
CGIの方も同時に弄らないと受け取れないようです。
No.1
- 回答日時:
考え方が違いますね
radioのvalueには数量をいれておいて、対比表で金額にかえます。
ただし、サーバーに金額を送る意味はありません。
サーバー側で数量をもとに再度対比表で金額を計算しなおす必要が
あります。
(ユーザーによる改竄の可能性があるため)
ちなみにbusuuのデータはradioがもっているのであえて
別のフィールドを用意する必要なないでしょう。
(submitするとわかるでしょ?)
<html>
<head>
<Title></Title>
<script type="text/javascript">
function calculate(obj){
var f=obj.form;
var list={100:"12000",150:"14000",200:"15000",300:"16000"};
var v=list[obj.value]?list[obj.value]:"";
f.totalPay.value=v;
}
</script>
</head>
<body>
<form>
<Div class="hyou">>>価格(税込み)※計算用の仮値段<Br></div>
<Table Border="1" Align="left" CellPadding="3">
<TR><TD>
<Input Type="radio" name="busuu" Value="100" onClick="calculate(this)">100部</td>
<td>12,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="busuu" value="150" onClick="calculate(this)">150部</td>
<td>14,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="busuu" value="200" onClick="calculate(this)">200部</td>
<td>15,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="busuu" value="300" onClick="calculate(this)">300部</td>
<td>16,000円</td>
</tr>
<tr>
<td><INPUT type="radio" name="busuu" value="300up" onClick="calculate(this)">300部以上</td>
<td>※お見積もりいたします</td>
</tr>
<tr>
<td><B>商品価格</B><Br><font size="2">(実際は非表示)</font></td>
<td><INPUT name="totalPay" type="text" size="24" value="" readonly> 円</td>
</tr>
</table>
<input type="submit">
</FORM>
</body>
</html>
この回答への補足
そうすると、CGIに対比表を追加しなければならないのですよね
現在動いてるCGIの記述をあまり変えたくないので、二つのフィールドに表示したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
テーブル内のチェックボックス...
-
jQuery テキストボックス読み取...
-
ラジオボタンが選択されたらテ...
-
画面の2重起動をチェックする...
-
ラジオボタン選択でtextfieldを...
-
追加したテキストボックスとテ...
-
jQueryでテーブル行の表示・非表示
-
Javascriptで自動計算の合計の...
-
localStorageでのcheckbox制御
-
プルダウン 項目が多いので先頭...
-
<input>の選択肢をプルダウンメ...
-
TextBoxに半角数字以外を入れた...
-
【jQuery】input nameの文字列...
-
value内に変数を入れたい
-
二つの入力欄に、同時に同じ文...
-
return trueとreturn falseの用...
-
チェックボックスのON/OFFでVal...
-
JavaScriptにて動的に配列を作...
-
正規表現で複数マッチ条件で悩...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
画面表示とともにtableの指定の...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
localStorageでのcheckbox制御
-
文字数を数える際に空白、改行...
-
テーブル内のチェックボックス...
-
クリックしたラジオボタンの行...
-
複数のselect値で1つも選択され...
-
jQueryで合計を出したい
-
送信ボタン連打を抑止したいです
-
ラジオボタンが選択されたらテ...
-
ラジオボタンを一括で操作する...
-
formで項目を連結したい
-
javascriptで表(テーブル)の自...
-
同一nameの input type="text"...
-
動的に生成されるラジオボタン...
-
ボタンクリックでフォーカス移動
-
JavaScriptによる自動計算フォーム
-
選択したテーブルのセルの背景...
おすすめ情報