• ベストアンサー

ラジオボタンの入力チェック。入力OKだったら他ページへリンクしたいのですが・・・

クイズのページを作っていてラジオボタンの質問があります。 全部に答えてもらったら解答ページへ飛ばしたいと思っています。 選択さえしてもらえればよいので、データの送信の必要はありません。 さらに送信?ボタンは画像を使いたいのですが、どのようにすればよいのでしょうか?? 実際データの送信はしないので<FORM>にする必要はないのでしょうか? ボタン?を画像にするのは以下でよいということは分かったのですが・・・ <INPUT type="image" onclick="location.href='www.***.com" src="a.gif">

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

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

サンプルです。 <html> <head> <title></title> <script type="text/javascript"> function sample(){ var inputs = document.getElementById('QUESTION').getElementsByTagName('input'); var results = new Array; for(var i=0;i<inputs.length;i++){ if(inputs[i].type == 'radio'){ results[inputs[i].name] |= inputs[i].checked; } } var msg = ''; for(j in results){ if(! results[j]){ msg += j+'が未選択です\n'; } } if(msg == ''){ location.href='example.html';//全てに回答されている時の遷移先 } else { alert(msg); } } </script> </head> <body> <div id="QUESTION"> <fieldset><legend>Q1</legend> <p><input type="radio" name="Q1" id="Q1_A"><label for="Q1_A">答えA</label> <input type="radio" name="Q1" id="Q1_B"><label for="Q1_B">答えB</label></p> </fieldset> <fieldset><legend>Q2</legend> <p><input type="radio" name="S2" id="Q2_A"><label for="Q2_A">答えA</label> <input type="radio" name="S2" id="Q2_B"><label for="Q2_B">答えB</label></p> </fieldset> </div> <p><input type="image" src="~" onclick="sample()"></p> </body> </html>

sugar5
質問者

お礼

ありがとうございます!できました!! とりあえず急ぎだったので、コピペで利用させていただいたのですが これから詳細を研究し、理解したいと思います。 本当にありがとうございました!

その他の回答 (2)

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.3

あ、すみません、「全部に答えてもらったら」でしたね。。。 私の回答は一個だけです。steel_grayさんの回答のほうが正解です。 |= 演算子ですか。なるほど。 a |= b は a = a | b と同等で、 a か b が true なら a が trueになるんですね。だから一度 true になるともう false にはならない・・・と。 勉強になりました^^

sugar5
質問者

お礼

アドバイスありがとうございました。 いろんな方法があるんですね。今回はsteel_grayさんの解答を 利用させていただいたのですが、susie-tさんのものも 今後のために糧とさせていただきます。 ありがとうございました!

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.1

以下でどうでしょう。 ----------------------- <html> <head> <title></title> <script> function move(){ var radio = document.getElementsByName("radio"); var flg = false; for(var i = 0; i < radio.length; i++){ if(radio[i].checked == true){ flg = true; break; } } if(flg == true){ location.href='http://oshiete1.goo.ne.jp'; }else{ alert("選択してください"); } } </script> </head> <body> <input type="radio" name="radio"> A / <input type="radio" name="radio"> B <INPUT type="image" onclick="move();" src="a.gif"></script> </body> </html> --------------------- 本当に遷移するだけなので、ラジオボタンにvalueを指定してません。ラジオボタンにつけるnameは、他と重複しないようにしてください。

関連するQ&A