10秒目をつむったら…

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>

A 回答 (2件)

おは。

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

そうそう。
かいとうが、おなじいろで YesとNoでも いいんだよね! ばぶ。
    • good
    • 0

もし、てーぶるが、こんなだったら。


<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');
なかんじ。
ばぶぅ~
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!