• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQuery 変数の使い方について)

jQuery変数の使い方について

このQ&Aのポイント
  • ラジオボタンが複数ある場合、変数を使って現在のアクションをまとめる方法について教えてください。
  • jQuery内の変数の記述方法に関して、詳細を教えていただきたいです。
  • 参考にしたサンプルソースでは、変数を使用してラジオボタンの選択結果を取得し、hiddenフィールドに格納しています。このような処理を実現するためのコードを教えてください。

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

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

■ $("input:radio[name='radio01']:checked").val(); クリック対象の obj があるのだから、値は obj.value で取れるのに... JavaScript には Perl や bash のような文字列内変数置換機能はありません。 なので、文字列連結でがんばりましょう。 引用符がごっちゃにならないように注意 var name = "radio01"; $("input:radio[name='" + name + "']:checked").val(); ■ document.forms["MON"].hradio02.value object["name"] の書式は、"name"を単純に変数に置換できます。 object.name の書式は、object["name"] と書き換えることにより、同上 というわけで var formName = "MON"; var paramName = "hradio02"; document.forms[formName][paramName].value;

megane5050
質問者

お礼

回答ありがとうございました!! function setVal(obj) { var formname = obj.form.name; var radioname = obj.getAttribute("Name"); document.forms[formname]["h"+radioname].value = $("input:radio[name='" + radioname + "']:checked").val();} でできました。 大変助かりました。お礼申し上げます。

その他の回答 (2)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 <label>内にradioが入ったのであれば var $hidden = $(this).parents('td').find('input:hidden'); で取得できます。 クリックされた親要素のtdまで遡り、その中のinput type="hidden"を取得するという動きです。 var $hidden = $(this).parent().parent().find('input:hidden'); でも行けます。

megane5050
質問者

お礼

親要素という奴ですね!! 大変勉強になりました。 ありがとうございました!

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 jQueryを利用するなら以下のようにすればお望みの動作が可能です。 (変数にしたいという質問の回答にはなっていません・・・) 動作原理はコメントを参考にしてください。 HTMLの変更点はinputタグのonClickを除去 JavaScriptをjQueryを使うように修正 ==== JavaScript $().ready ( function() { // input type="radio"がクリックされたら $('input:radio').click ( function() { // クリックされたラジオを持つ親要素の中からinput type="hidden"の要素を取得 var $hidden = $(this).parent().find('input:hidden'); // 設定前を表示してみる alert ( $hidden.val() ); // クリックされた要素のvalueを取得 var value = $(this).val(); // hidden要素にセット $hidden.val(value); // 設定後を表示してみる(選択した内容が表示されるはず) alert ( $hidden.val() ); }); }); ==== HTML <form name="MON"> <table border="1"> <tr> <td> 結果: </td> <td> <input type="radio" name="radio01" value="良好">良好 <input type="radio" name="radio01" value="不良"> 不良 <input type="hidden" name="hradio01" value="未入力です。"> </td> </tr> <tr> <td> 結果2: </td> <td> <input type="radio" name="radio02" value="良好">良好 <input type="radio" name="radio02" value="不良"> 不良 <input type="hidden" name="hradio02" value="未入力です。"> </td> </tr> </table> </form>

megane5050
質問者

補足

ご回答ありがとうございます!! IE6用に<label>タグをラジオボタンにつけた場合、 hideenに値が格納されないのですが、 // クリックされたラジオを持つ親要素の中からinput type="hidden"の要素を取得 var $hidden = $(this).parent().find('input:hidden'); <label>タグをつけても、input type="hidden"の要素を探せる方法はありますでしょうか? ★ソース <label for="radiocheck01_01"> <input id="radiocheck01_01" type="radio" name="radio01" value="良好">良好</label> <label for="radiocheck01_02"><input id="radiocheck01_02" t type="radio" name="radio01" value="不良"> 不良</label> <input type="hidden" name="hradio01" value="未入力です。">