
jQuery 変数の使い方について
【やりたいこと】
ラジオボタンが複数ある為現在のアクションをまとめたい。
■ $("input:radio[name='radio01']:checked").val();
の'radio01'の部分に変数を使いたい。
■document.forms["MON"].hradio02.value
の"MON"のフォーム名と、「hradio02」name部分に変数を使いたい。
http://kaicoo.blogspot.jp/2012/03/query_30.html
等を参考に元のソースから
JSをまとめてみましたが、うまくいきません。
jQuery内の変数の記述方法を
教えていただけませんでしょうか?
よろしくお願いいたします。
★JSをまとめたサンプルソース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<script src="jquery.js"></script>
<script type="text/javascript" language="JavaScript">
<!--
function setVal(obj) {
var formname = obj.form.name;
var radioname = obj.getAttribute('name');
alert(formname);
alert(radioname);
//選択したラジオのvalueをhiddenに格納する
document.forms[formname].h '+ radioname +' .value = $("input:radio[name='+ radioname +']:checked").val();
alert(document.forms[formname].h '+ radioname +'.value);
}
//-->
</script>
</head>
<body>
<table border="1">
<FORM name="MON">
<tr>
<td>
結果:
</td>
<td>
<input type="radio" name="radio01" value="良好" onClick="setVal(this);" >良好
<input type="radio" name="radio01" value="不良" onClick="setVal(this);"> 不良
<input type="hidden" name="hradio01" value="未入力です。">
</td>
</tr>
<tr>
<td>
結果2:
</td>
<td>
<input type="radio" name="radio02" value="良好" onClick="setVal(this);" >良好
<input type="radio" name="radio02" value="不良" onClick="setVal(this);"> 不良
<input type="hidden" name="hradio02" value="未入力です。">
</td>
</tr>
</table>
</Form>
</body>
</html>
★元のソースのサンプル
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<script src="jquery.js"></script>
<script type="text/javascript" language="JavaScript">
<!--
function setVal_01(obj) {
document.forms["MON"].hradio01.value =
$("input:radio[name='radio01']:checked").val();
alert(document.forms["MON"].hradio01.value);
}
//-->
</script>
<script type="text/javascript" language="JavaScript">
<!--
function setVal_02(obj) {
document.forms["MON"].hradio02.value =
$("input:radio[name='radio02']:checked").val();
alert(document.forms["MON"].hradio02.value);
}
//-->
</script>
</head>
<body>
<table border="1">
<FORM name="MON">
<tr><td>
結果:
</td>
<td><input type="radio" name="radio01" value="良好" onClick="setVal_01(this);" >良好
<input type="radio" name="radio01" value="不良" onClick="setVal_01(this);"> 不良
<input type="hidden" name="hradio01" value="未入力です。">
</td>
</tr>
<tr>
<td>
結果2:
</td>
<td>
<input type="radio" name="radio02" value="良好" onClick="setVal_02(this);" >良好
<input type="radio" name="radio02" value="不良" onClick="setVal_02(this);"> 不良
<input type="hidden" name="hradio02" value="未入力です。">
</td>
</tr>
</table>
</Form>
</body>
</html>
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;
回答ありがとうございました!!
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();}
でできました。
大変助かりました。お礼申し上げます。
No.3
- 回答日時:
こんにちは。
<label>内にradioが入ったのであれば
var $hidden = $(this).parents('td').find('input:hidden');
で取得できます。
クリックされた親要素のtdまで遡り、その中のinput type="hidden"を取得するという動きです。
var $hidden = $(this).parent().parent().find('input:hidden');
でも行けます。
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>
この回答への補足
ご回答ありがとうございます!!
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="未入力です。">
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンのチェックが外れ...
-
ラジオボタンにタブインデック...
-
JavaScript ラジオボタン デ...
-
データベースの値を判断してラ...
-
ラジオボタンのValueを受け取り...
-
EXCEL VBA:IEの操作であるラジ...
-
DOMで作ったラジオボタンが選択...
-
selectを変更不可にしたい
-
return trueとreturn falseの用...
-
ボタンが押されると同時にデー...
-
チェックボックス付きのテーブ...
-
プルダウン選択を変更すると、...
-
TextBoxに半角数字以外を入れた...
-
selectメニューによるチェック...
-
スマホのフォームでのselect複...
-
プルダウンで選択すると、DBの...
-
テキストボックスに数字しか入...
-
javascriptでセレクトボックス...
-
Selectの中身をfor文で入れる
-
正規表現で複数マッチ条件で悩...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
ラジオボタンでチェックした項...
-
フォームPOST後「戻る」時のチ...
-
ラジオボタンのチェックが外れ...
-
データベースの値を判断してラ...
-
javascript作成してます。ラジ...
-
ラジオボタンを使って、検索ペ...
-
ラジオボタンでdisabledとchecked
-
チェックされたラジオボタンに...
-
ラジオボタンにチェックを入れ...
-
(jQuery)ラジオボタン選択値を...
-
クイズの正解(○×)をテキスト...
-
radio選択をクッキーに保存させ...
-
jsでラジオボタンによって表示...
-
ボタンの無効化
-
ラジオボタンで入力フィールド...
-
Jvasvriptのlengthで個数が取得...
-
ポップアップウインドウで選択...
-
ラジオボタンでの動的項目の変...
-
VBA IE ラジオボタンに...
おすすめ情報