• 締切済み

質問の選択肢をランダム表示したいです。

4つの選択肢の中から一つを選ばせて、その結果を集計して、結果によって違うページに飛ぶスクリプトを作っています。 その中で4つの選択肢をランダムに表示させる方法がわかりません。 Q1赤青緑黄,Q2赤青緑黄,Q3赤青緑黄… Q5赤青緑黄と現在なっていますが、 Q1緑黄赤青,Q2赤緑黄青,Q3青緑赤黄… Q5赤青緑黄という感じにしてもちゃんと集計してくれるようにしたいです。 以下のプログラムまでできています。アドバイスお願いします。 <title>好きな色</title> <script type="text/javascript"><!-- function count(f){ var aka = 0; var ao = 0; var yellow = 0; var midori = 0; for(var i=1; i<=10; i++){ if(f["q" + i][0].checked && f["q" + i][0].value=="1"){ aka++; } else if(f["q" + i][0].checked && f["q" + i][0].value=="2"){ aka--; } else if(f["q" + i][1].checked && f["q" + i][1].value=="3"){ ao++; } else if(f["q" + i][1].checked && f["q" + i][1].value=="4"){ ao--; } else if(f["q" + i][2].checked && f["q" + i][2].value=="5"){ midori++; } else if(f["q" + i][2].checked && f["q" + i][2].value=="6"){ midori--; } else if(f["q" + i][3].checked && f["q" + i][3].value=="7"){ yellow++; } else if(f["q" + i][3].checked && f["q" + i][3].value=="8"){ yellow--; } } if( aka > ao && aka > midori && aka > yellow){ location.href="01.html"; } else if( yellow > ao && yellow > midori && yellow > aka){ location.href="02.html"; } else if( ao > aka && ao > midori && ao > yellow){ location.href="03.html"; } else if( midori > ao && midori > aka && midori > yellow){ location.href="04.html"; } else { location.href="05.html"; } } //--> </script> </head> <body> <center> <form name="test"> <p> <table border="1"> <tr> <td> Q1 </td> <td>Yes</td> <td>No</td></tr> <br> <td><label>赤</label></td> <td><input type="radio" name="q1" value="1" /></td> <td><input type="radio" name="q2" value="2" /></td></tr> <td><label>青</label></td> <td><input type="radio" name="q1" value="3" /></td> <td><input type="radio" name="q2" value="4" /></td></tr> <td><label>緑</label></td> <td><input type="radio" name="q1" value="5"/></td> <td><input type="radio" name="q2" value="6"/></td></tr> <td><label>黄</label></td> <td><input type="radio" name="q1" value="7"/></td> <td><input type="radio" name="q2" value="8"/></td></tr> </table> <table border="1"> <tr> <td> Q2 </td> <td>Yes</td> <td>No</td></tr> <br> <td><label>赤</label></td> <td><input type="radio" name="q3" value="1"/></td> <td><input type="radio" name="q4" value="2"/></td></tr> <td><label>青</label></td> <td><input type="radio" name="q3" value="3" /></td> <td><input type="radio" name="q4" value="4" /></td></tr> <td><label>緑</label></td> <td><input type="radio" name="q3" value="5"/></td> <td><input type="radio" name="q4" value="6"/></td></tr> <td><label>黄</label></td> <td><input type="radio" name="q3" value="7"/></td> <td><input type="radio" name="q4" value="8"/></td></tr> </table> <input type="button" value="採点" onclick="count(this.form)"> </form> </center> </body> </html>

みんなの回答

回答No.2

もし、てーぶるが、こんなだったら。 <table border="1" id="TQ1" summary="問題1">  <tr>   <th>Q1</th>   <th>Yes</th>   <th>No</th>  </tr>  <tr>   <td><label>1赤</label></td>   <td><input type="radio" name="q1" value="1" /></td>   <td><input type="radio" name="q2" value="2" /></td>  </tr>   <td><label>2青</label></td>   <td><input type="radio" name="q1" value="3" /></td>   <td><input type="radio" name="q2" value="4" /></td>  </tr>  <tr>   <td><label>3緑</label></td>   <td><input type="radio" name="q1" value="5"/></td>   <td><input type="radio" name="q2" value="6"/></td>  </tr>  <tr>   <td><label>4黄</label></td>   <td><input type="radio" name="q1" value="7"/></td>   <td><input type="radio" name="q2" value="8"/></td>  </tr> </table> ならびかえるのは、 function test(id) {  var i = 0, o;  var tbody = document.getElementById(id).getElementsByTagName('tbody')[0];  while (o = tbody.childNodes[i]) if (3 == o.nodeType) tbody.removeChild(o); else i++;  while (--i) tbody.appendChild(tbody.childNodes[1+Math.random()*i|0]); } かもしれないじょ。 つかいかたは、 test('TQ1'); なかんじ。 ばぶぅ~

回答No.1

おは。そのまえに、てーぶるのなりたちが、へんだじょ! <br>がへんなとこにあったり、 <tr>がないのに</tr>はあったりと・・・ </tr>をはぶくならみたことあるけど。 ばぶぅ~。 そうそう。 かいとうが、おなじいろで YesとNoでも いいんだよね! ばぶ。

関連するQ&A