• 締切済み

ラジオボタンを選択済みにすると列の最後に付いてしまいます

こんにちは、いつもお世話になっております。 JSPで作っているのですが、ラジオボタンなのでHTMLの方でおたずねします。 for文で動的なラジオボタンをつくり、出来た列の先頭をあらかじめ選択済にしておきたいのですが、一番最後が選択済になってしまいます。 選択済みにしたい場合はしたい場所に< checked> を記述すればいいのは分かるのですが、 <input type="radio" value="i" checked> (※i=変数) のような動的な場合はどこに設定すればよいのでしょうか? 「checked="top"」みたいな書き方が出来ればいいのですが… ご存知の方がいらっしゃったらご教授ください。

  • HTML
  • 回答数3
  • ありがとう数4

みんなの回答

  • pick52
  • ベストアンサー率35% (166/466)
回答No.3

JSP(Java)の構文はよく分からないのでヒントだけ。 まず、checked属性がついていない場合の動作はクライアント(ブラウザ) 依存です。 一番最初か一番最後が選択された状態になったり何も選択されない 状態になったりします。 これはHTMLとしては文法違反となります。 一方で、今回はすべての type="radio" に対してchecked属性を つけてしまったようですね。 ループを使用している場合、フラグ変数をたてたりして指定の部分だけ checked属性をつけるようにするといいです。 PerlCGIではよく以下のようにします。 for(my $i = 0; $i < 10; $i++) { # ループの最初だけ ' checked' をつける my $checked = ' checked' if($i == 0); # フォームを表示する print "<input type=\"radio\" name=\"radio_$i\" value=\"$i\"$checked>\n"; } Javaでも応用すれば同様のことはできると思います。

  • abril
  • ベストアンサー率69% (388/560)
回答No.2

JSPの事はわからないので的外れかも知れませんが… 「一番最後が選択済になって」しまうのは、「for文で動的なラジオボタンをつくり、出来た列」の<input type="radio"~>の全てにchecked属性が入っている為だと思います。ラジオボタンは「単一選択」ですから、同一の選択肢(name)の中ではchecked属性は常に1つのみにしかつけられません(つまり「「checked="top"」みたいな書き方」というのは存在しません)。もしそれに反してchecked属性が同一name中の全ての選択肢に入ってしまっていたら、より後の選択肢に上書きされて行く事になり、結局一番最後のものが「選択済み」状態で表示されてしまいます。 なので、 <input type="radio" name="hoge_01" id="hoge_01_1" value="1" checked> <input type="radio" name="hoge_01" id="hoge_01_2" value="2"> (以下同様) という様にしたいのであれば、checked属性の記述部分も変数にして、動的に書き出されるグループの常に一番最初のみその属性を表示し、残りの選択肢には表示しない…という様な設定ができればよいと思うのですが、その様にはできませんか?

mogu33mogu
質問者

お礼

解説ありがとうございます。 なぜそうなってしまうのか良くわかりました!! でもよくある一覧表示などではたいてい一番先頭が選択済みになってるのでできるはずですよね。 check属性の部分も変数にするというのは考えたのですがうまくいきませんでした。 >動的に書き出されるグループの常に一番最初のみその属性を表示し、残りの選択肢には表示しない…という様な設定 これがどんなものになるのか…まだ検討してみます。

  • dora7075
  • ベストアンサー率39% (103/261)
回答No.1

for文の前にchecked付きのタグを記述してから、for文内はchecked無しで記述。 例(簡略で記述してます) <input type・・・・checked> for ・・・・・・ <input type・・・・> end

mogu33mogu
質問者

お礼

回答ありがとうございます。 ラジオボタンの<input type= ~~>をfor文の前と後とでわけるということですか? for文の前に出すと、ラジオボタンが動的に出来なくなってしまいます…

関連するQ&A

  • JSP(ラジオボタンでチェックされた値を代入)

    JSPのHTML箇所で以下のようなラジオボタンを作成しました。 <input type="radio" name="a" value="1" checked> <input type="radio" name="b" value="2"> 上のラジオボタンが選択されたとき、<% %>のJAVAで変数cに1をセット、 下のラジオボタンが選択されたとき、変数cに2をセットという形を作りたいのですが、 調べてもわかりませんでしたのでご教示ください。 以下のようにするとどちらもソースを通るので、必ず2が代入されてしまいます。 IF文的にどちらかチェックされたほうを代入できるようにしたいです。 <input type="radio" name="a" value="1" checked <% c=1 %>> <input type="radio" name="b" value="2" <% c=2 %>>

    • ベストアンサー
    • Java
  • JSP + ラジオボタン

    JSP+Servlet+Beanで作ってます。 JBuilder5を使ってます。 JSPはラジオボタン、テキスト、ボタン等があります。 <INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A <INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B <INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C としています。 たとえば、Bを選択時、ボタンクリックで Servletにリクエストを送信しますが、 Servletから再びJSPを呼び出し、画面を 表示するとき、ラジオボタンはBを選択 させたいのですが、どうしたらいいですか? FormタグのCHECKEDというオプションを どのように使えばいいのか教えていただきたいのですが。 テキストには、Beanでsetメソッド、 JSPでは、<jsp:getProperty・・・>を使って セットできているんですが、ラジオボタンも 同様ですか? @@@・・・JSPのタグを勉強しないといけないです。 @@@勉強不足です。

    • ベストアンサー
    • Java
  • ラジオボタンについて

    こんにちは。ラジオボタンについて質問させてください。 <input type="radio" name="area" value="all" onClick="area.value = 'all'" checked>ALL<br> <input type="radio" name="area" value="a" onClick="area.value = 'a'">A<br> <input type="radio" name="area" value="b" onClick="area.value = 'b'">B<br> というHTMLを記述しました。 画面が表示された後にラジオボタンをチェックして実行(別個作成)すると うまく動作するのですが、チェックボタンをチェックしずに (デフォルトの'ALL'選択のまま)実行するとうまくいきません。 どのようにすればうまく動作するのでしょうか?

    • ベストアンサー
    • HTML
  • ラジオボタン選択で「複数ラジオボタン」をアクティブにするには?

    ■下記サンプルソースのラジオボタンの「はい」を選択すると複数のラジオボタンがアクティブになるJavaScriptがわからず困っております。教えて頂けないでしょうか。 (ページ開いた際は「いいえ checked」で複数ラジオボタンはグレーで選択無効) 用途はアンケートフォームです。 可能であればシンプルなソースで「最新のWinIE、MacSafari」に対応していると非常に助かります。先輩方よろしくお願いします。 <form name="form2" method="post" action=""> <table> <tr> <td>■「はい」を選択すると、ラジオボタン(カテゴリー1~4)がアクティブになる。 </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">はい <input name="radiobutton" type="radio" value="radiobutton" checked>いいえ </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">カテゴリー1 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー2 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー3 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー4 </td> </tr> </table> </form>

  • javascriptでラジオボタンをチェックさせて、それによってリンク

    javascriptでラジオボタンをチェックさせて、それによってリンクを飛ばしたいと考えています。 自分なりに調べて、作成したのですが、 フレームを利用しており、ページ全体を移動(top)したいのですが、フレーム内でしか表示されません。 <HTML> <HEAD> <TITLE>らじお</TITLE> <SCRIPT LANGUAGE="JavaScript"> function jump(){ var flag = 0; for(i=0; i<document.forms[0].url.length; i++){ if(document.forms[0].url[i].checked){ flag = 1; window.location.href = document.forms[0].url[i].value; } } if(flag == 0){ alert('ラジオボタンが選択されていません。'); } } </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE="radio" NAME="url" VALUE="表示したいURL.htm" checked>選択肢1<br> <INPUT TYPE="radio" NAME="url" VALUE="表示したいURL.htm">選択肢2<br> <INPUT TYPE="radio" NAME="url" VALUE="表示したいURL.htm">選択肢3ド<br> <INPUT TYPE="button" onClick="jump();" VALUE="移動"> </FORM> </BODY> </HTML> 上記状態で、あちらこちらに"_top"を挿入してみたのですが、うまくいきません。 どなたかお知恵を拝借出来ませんでしょうか?

  • データベースの値を判断してラジオボタンにセットする方法

    Javaサーブレット&JSPで開発しています。 HTMLフォームよりラジオボタンを選択して、その内容をデータベースに登録します。 <input type=radio name=xxxx value=1>りんご <input type=radio name=xxxx value=2>みかん <input type=radio name=xxxx value=3>ばなな 上記の例だと、りんごを選択したとき、データベース上のxxxxには、1を登録します。 その後、変更時には下記のように登録した内容を画面にラジオボタン形式で表示させたいのですがどのように記述すればよいでしょうか? <input type=radio name=xxxx value=1 checked>りんご <input type=radio name=xxxx value=2>みかん <input type=radio name=xxxx value=3>ばなな

    • ベストアンサー
    • Java
  • ラジオボタンの未選択チェックについて

    ラジオボタンの未選択チェックに困っています! フォームにInputして、CGIで送信するように設定しています。 但し、送信内容を管理者がメール受信するため、ラジオボタンの「name」は漢字にしています。   <name> <value> Webの見やすさ = 見やすい  と表示されるようにです。 <INPUT type="radio" name="Webの見やすさ" value="見やすい" id="Q11"><label for="Q11"> 見やすい</label> <INPUT type="radio" name="Webの見やすさ" value="特に問題ない" id="Q12"><label for="Q12"> 特に問題ない</label> <INPUT type="radio" name="Webの見やすさ" value="ふつう" id="Q13"><label for="Q13"> ふつう</label>   <INPUT type="radio" name="Webの見やすさ" value="やや見にくい" id="Q14"><label for="Q14"> やや見にくい</label>   <INPUT type="radio" name="Webの見やすさ" value="見にくい" id="Q15"><label for="Q15"> 見にくい</label></TD> この場合、ラジオボタンの未選択チェックは、どのようにしたら いいのでしょうか? 今までは、「name」を英数にしていたので、下記のようにしていました。 <script language="JavaScript"> <!-- function chk(oj) { if ((oj.Q1[0].checked == false) && (oj.Q1[1].checked == false) && (oj.Q1[2].checked == false) && (oj.Q1[3].checked == false) && (oj.Q1[4].checked == false)) { alert("Q1のボタンが未選択です"); return false ; } else { return true ; } }//--> </script> 初心者のため、何を変えたらいいのか・・・ホームページを調べたのですが分かりませんでした。 「name」が漢字の場合、どのように指示したらいいのか、ぜひぜひご教授願います。 どうぞよろしくお願いいたします。

  • jQueryで複数のラジオボタンを処理

    jQueryを最近使い始めました。 以下のようなことをしたいのですが、いいやり方が分かりません。 jQueryを使ってページの読み込み後すぐに、ラジオボタンにチェックを入れたいと思っています。 以下のようにすると実際にチェックが入りました。 HTML <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> jQuery if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } ラジオボタンが複数ある場合、上記のjQueryのnameの値を変えたものを増やしていけば対応できたのですが、ラジオボタンがたくさんある場合、同じようなスクリプトが何行も増えてしまいます。 うまく関数にする方法やその他よい対処法はないでしょうか。 <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> <input type="radio" name="b" value="1" /> <input type="radio" name="b" value="2" /> <input type="radio" name="c" value="1" /> <input type="radio" name="c" value="2" /> … if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } if(!$("input:radio[name=b]:checked").val()){  $("input:radio[name=b]:first").attr("checked" , "checked"); } if(!$("input:radio[name=c]:checked").val()){  $("input:radio[name=c]:first").attr("checked" , "checked"); } …

  • ラジオボタンが未選択時の制御方法について

    たびたびお世話になっております。 Webフォームを思考策後しながら作成しています。 下記のラジオボタン1 とラジオボタン3 は選択して、 ラジオボタン2 は選択せずに出力する下記のように、 ハヌけした書式で出力されます。 ハヌけしないように出力させる方法はありますでしょうか? ご教授をお願いいたします。 出力結果: ------------------------------------------------------------------------------- 【ラジオボタン1】:回答1 【ラジオボタン3】:回答1 ソース: ------------------------------------------------------------------------------- <head> <title>アンケートフォーム</title> <script type="text/javascript">  <!-- 値の加工用// --> function textoutput() {        <!-- フォームを変数に// --> var formObj = document.form01;        <!-- radioを取得// --> var radio01 = formObj.A01;        <!-- radioを取得// --> var radio02 = formObj.A02;        <!-- radioを取得// --> var radio03 = formObj.A03;        <!-- textを結合用の変数として準備// -->        <!-- A01の中から選択されているものを取得// --> var text = '下記リカバリシートを案内' + '\n';        <!-- A02の中から選択されているものを取得// --> for ( var i = 0; i < radio01.length; i ++ ) { if ( radio01[i].checked === true ) { text += '【ラジオボタン1】:' + '\n' + radio01[i].value;}} text += '\n';        <!-- A02の中から選択されているものを取得// --> for ( var i = 0; i < radio02.length; i ++ ) { if ( radio02[i].checked === true ) { text += '【ラジオボタン2】:' + '\n' + radio02[i].value;}} text += '\n';        <!-- A02の中から選択されているものを取得// --> for ( var i = 0; i < radio03.length; i ++ ) { if ( radio03[i].checked === true ) { text += '【ラジオボタン3】:' + '\n' + radio03[i].value;}} text += '\n'; <!-- output.valueにtextを反映(最後に改行コード)// --> formObj.output.value = text + '\n'; } </script> </head> <body> <strong>アンケートフォーム</strong><br /><br /> <form name="form01"> <!--ラジオボタン// --> <strong>・ラジオボタン1</strong><br /> <input type="radio" name="A01" value="回答1" id="radio1-1" " tabindex="3"> <label for="radio1-1">回答1</label> <input type="radio" name="A01" value="回答2" id="radio1-2" " tabindex="4"> <label for="radio1-2">回答2</label> <input type="radio" name="A01" value="回答3" id="radio1-3" " tabindex="5"> <label for="radio1-3">回答3</label> <br /> <!--ラジオボタン// --> <strong>・ラジオボタン2</strong><br /> <input type="radio" name="A02" value="回答1" id="radio1-1" > <label for="radio1-1">回答1</label> <input type="radio" name="A02" value="回答2" id="radio1-2"> <label for="radio1-2">回答2</label> <input type="radio" name="A02" value="回答3" id="radio1-3"> <label for="radio1-3">回答3</label> <br /> <!--ラジオボタン// --> <strong>・ラジオボタン3</strong><br /> <input type="radio" name="A03" value="回答1" id="radio1-1" > <label for="radio1-1">回答1</label> <input type="radio" name="A03" value="回答2" id="radio1-2"> <label for="radio1-2">回答2</label> <input type="radio" name="A03" value="回答3" id="radio1-3"> <label for="radio1-3">回答3 </label> <br /> <!--ログ出力// --> ログ出力<br> <input type="button" value="ログ出力" onClick="textoutput();"> <input type="reset" value="リセット"><br> <textarea name="output" cols="60" rows="10"></textarea><br> </form> </body> </html>

  • 選択した値の渡し方について(ラジオボタン)

    プログラムまだ初心者です。 教えてください。 VBScriptでHTML(ラジオボタン)の部分を以下の通り書きました。 上の方を選択(Aを選択)すると4という値を次に遷移するページに渡し、 下の方を選択(A以外)すると4以外の数値を渡すようにしたいです。 valueの箇所をどのように書けばよろしいでしょうか? 4以外という書き方があれば教えて頂けますでしょうか? もしくはカンマ区切りでその4以外の数値を書けば宜しいのでしょうか? <TABLE border=1 cellPadding=1 cellSpacing=1> <TR> <TD><INPUT type="radio" name="choice" value="4" checked>A<br> <INPUT type="radio" name="choice" value="?" >A以外</TD> </TR> </TABLE>

    • ベストアンサー
    • HTML

専門家に質問してみよう