• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ラジオボタンのnameに別々の文字列を入れてもグループにするには?)

ラジオボタンのnameに別々の文字列を入れてもグループにするには?

このQ&Aのポイント
  • ラジオボタンのnameに異なる文字列を入れても、グループにする方法について教えてください。
  • 商品名と価格をラジオボタンで選択したい場合、それぞれ異なるnameを使用しても選択が可能になってしまいます。
  • 正しい選択方法について教えてください。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

回答じゃないけど参考までに。 >nameに別々の文字列を入れてもグループにするには? これはめんどうくさそう。それにHTMLで出来る事をわざわざ出来ないようにしておいてjavascriptで元に戻すって無駄。 nameはやはり合わせておいて value="商品名:価格" みたいにしてvalueを扱うときに商品名と価格に分割した方がまだ楽そう。 あるいは <label onclick="calc2()"><input type="radio" name="test" value="34500">商品名1</label> <label onclick="calc2()"><input type="radio" name="test" value="15000">商品名2</label> こんな感じにしておいてテキストから商品名を取得するとか。 (ラジオボタンやチェックボックスにはlabelをちゃんと付けるととっても操作がしやすくなるのでおすすめ)

Xxxxsakura
質問者

お礼

ご回答ありがとうございます! やっぱり、ラジオボタンの機能をわざわざ使えなくするのは無駄ですよね。反省。 labelを使ってテキストから商品名を取得するのは、まったく考えていなかったので、とても参考になります。詳しく調べてみます。

その他の回答 (4)

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

そもそも、クライアントから送られてくる「価格」は不正に修正されている 可能性が高いと理解する必要があります。 商品に関する個別の情報はサーバー側でデータをもっていればよいので、 価格自体を送らせる必要は皆無です。 なので、商品のIDと数量だけ送る仕組みにすれば何の問題もありません。 javascriptでバリデートするのであれば、別途配列で価格表をつくっておけば radioなどのvalueに埋め込む必要はありません。 いずれにしてもradioで処理するのにnameを無理やり変えて処理するのは 無駄ばかり多くて得るものがなく、やるべきではないことの代表のようなものです。

Xxxxsakura
質問者

お礼

ご回答ありがとうございます! 商品に関する個別の情報をサーバーで…ショッピングカートを用意しないといけませんね。 そこまで本格的な開発は考えていませんでした、すみません。 radioを改変するのはやはり無謀なようですのでやめます。 配列で価格表、参考にさせていただきます。

回答No.4

私ならclassで分類してみますが。

Xxxxsakura
質問者

お礼

ご回答ありがとうございます! クラスの使い方が良く分かりません。 もっと勉強しないとだめですね。

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

グルーピングをスクリプトで管理すればよいのでしょうけれど、もともと備わっている機能をわざわざ作成するよりも、本来の機能に任せるほうが良さそうな気が… >nameを商品名、valueを価格として使いたいので、~ nameをグルーピングに、valueを「商品名 価格」にすれば、小細工をしなくてもすむのでは?

Xxxxsakura
質問者

お礼

ご回答ありがとうございます! そうですね、元々ある機能を作り直すとか無謀でした。 valueを「商品名 価格」にする方法で考えてみます。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

 同じグループのラジオボタンは、同じNAME属性にしないと、 ラジオボタン(一つだけ選ばせる)の機能を持たせる事は出来ません。    どのラジオボタンがチェックされたかは、nameじゃなくて、value で判断する。価格も一緒にとりたかったら、  value="['商品A','34500']" 見たいにして、アンシリアライズすれば、どうでしょう。

Xxxxsakura
質問者

お礼

ご回答ありがとうございます! そうですよね、やっぱり同じNAME属性じゃないと無理ですよね…。 valueに商品名と価格を設定して、計算するときは価格だけ、メール送るときは両方受け取る方法を考えてみます。

関連するQ&A

専門家に質問してみよう