- ベストアンサー
ラジオボタンのnameに別々の文字列を入れてもグループにするには?
- ラジオボタンのnameに異なる文字列を入れても、グループにする方法について教えてください。
- 商品名と価格をラジオボタンで選択したい場合、それぞれ異なるnameを使用しても選択が可能になってしまいます。
- 正しい選択方法について教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答じゃないけど参考までに。 >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をちゃんと付けるととっても操作がしやすくなるのでおすすめ)
その他の回答 (4)
- yambejp
- ベストアンサー率51% (3827/7415)
そもそも、クライアントから送られてくる「価格」は不正に修正されている 可能性が高いと理解する必要があります。 商品に関する個別の情報はサーバー側でデータをもっていればよいので、 価格自体を送らせる必要は皆無です。 なので、商品のIDと数量だけ送る仕組みにすれば何の問題もありません。 javascriptでバリデートするのであれば、別途配列で価格表をつくっておけば radioなどのvalueに埋め込む必要はありません。 いずれにしてもradioで処理するのにnameを無理やり変えて処理するのは 無駄ばかり多くて得るものがなく、やるべきではないことの代表のようなものです。
お礼
ご回答ありがとうございます! 商品に関する個別の情報をサーバーで…ショッピングカートを用意しないといけませんね。 そこまで本格的な開発は考えていませんでした、すみません。 radioを改変するのはやはり無謀なようですのでやめます。 配列で価格表、参考にさせていただきます。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
私ならclassで分類してみますが。
お礼
ご回答ありがとうございます! クラスの使い方が良く分かりません。 もっと勉強しないとだめですね。
- fujillin
- ベストアンサー率61% (1594/2576)
グルーピングをスクリプトで管理すればよいのでしょうけれど、もともと備わっている機能をわざわざ作成するよりも、本来の機能に任せるほうが良さそうな気が… >nameを商品名、valueを価格として使いたいので、~ nameをグルーピングに、valueを「商品名 価格」にすれば、小細工をしなくてもすむのでは?
お礼
ご回答ありがとうございます! そうですね、元々ある機能を作り直すとか無謀でした。 valueを「商品名 価格」にする方法で考えてみます。
- yyr446
- ベストアンサー率65% (870/1330)
同じグループのラジオボタンは、同じNAME属性にしないと、 ラジオボタン(一つだけ選ばせる)の機能を持たせる事は出来ません。 どのラジオボタンがチェックされたかは、nameじゃなくて、value で判断する。価格も一緒にとりたかったら、 value="['商品A','34500']" 見たいにして、アンシリアライズすれば、どうでしょう。
お礼
ご回答ありがとうございます! そうですよね、やっぱり同じNAME属性じゃないと無理ですよね…。 valueに商品名と価格を設定して、計算するときは価格だけ、メール送るときは両方受け取る方法を考えてみます。
お礼
ご回答ありがとうございます! やっぱり、ラジオボタンの機能をわざわざ使えなくするのは無駄ですよね。反省。 labelを使ってテキストから商品名を取得するのは、まったく考えていなかったので、とても参考になります。詳しく調べてみます。