Помогите исправить ошибку в коде
<script type="text/javascript"> var MassQues=[" Кто создал Os Windows Xp ?"," Что такое википедия ?"," Кто такой Ктулху ?"," Столица Венгрии ?"," Какое из перечисленных морей самое солённое?"] var massAns=[ { ans: ["a) Билл Гейтс ", "b) Петрович, после литра, машину времени создал из бутылок", "c) Мой мозг", "d) Я шо знаю ?" ], CorrecT:0 }, { ans: ["a) Справочник по городским телефонам ", "b) Видео пособие по ловле мух", "c) Веб-инцеклопедия", "d) Заметки Петровича на счёт размножения колорадских жуков" ], CorrecT:2 }, { ans: ["a) Речной леший ", "b) Донное морское чудище", "c) Петрович с бодуна", "d) Морской коралловый краб" ], CorrecT:1 }, { ans: ["a) Стамбул ", "b) Будапешт", "c) Копенгаген", "d) Прага" ], CorrecT:1 }, { ans: ["a) Чёрное море ", "b) Жёлтое море", "c) Красное море", "d) Мраморное море" ], CorrecT:2 } ]; var need=[]; var k=0; var r=[]; var mass=[]; var somth="a"; var helper=[]; var score=0; var money=0; var yourAns=new Array(); //var vaRiant=new Array("a1","a3","a2","a2","a3"); function Engine(question, answer) {yourAns[question]=answer;} function Braine(){ for(var i=0;i<1;i++){ r.push(MassQues.splice(Math.random()*MassQues.length,1)) mass=r; //alert(mass); if(mass==" Кто создал Os Windows Xp ?"){ massAns[0].ans; document.getElementById('first').innerHTML=massAns[0].ans[0]; document.getElementById('first2').innerHTML=massAns[0].ans[1]; document.getElementById('first3').innerHTML=massAns[0].ans[2]; document.getElementById('first4').innerHTML=massAns[0].ans[3]; need=" Кто создал Os Windows Xp ?"; } if(mass==" Что такое википедия ?"){ massAns[1].ans; document.getElementById('first').innerHTML=massAns[1].ans[0]; document.getElementById('first2').innerHTML=massAns[1].ans[1]; document.getElementById('first3').innerHTML=massAns[1].ans[2]; document.getElementById('first4').innerHTML=massAns[1].ans[3]; need=" Что такое википедия ?"; } if(mass==" Кто такой Ктулху ?"){ massAns[2].ans; document.getElementById('first').innerHTML=massAns[2].ans[0]; document.getElementById('first2').innerHTML=massAns[2].ans[1]; document.getElementById('first3').innerHTML=massAns[2].ans[2]; document.getElementById('first4').innerHTML=massAns[2].ans[3]; need=" Кто такой Ктулху ?"; } if(mass==" Столица Венгрии ?"){ massAns[3].ans; document.getElementById('first').innerHTML=massAns[3].ans[0]; document.getElementById('first2').innerHTML=massAns[3].ans[1]; document.getElementById('first3').innerHTML=massAns[3].ans[2]; document.getElementById('first4').innerHTML=massAns[3].ans[3]; need=" Столица Венгрии ?"; } if(mass==" Какое из перечисленных морей самое солённое?"){ massAns[4].ans; document.getElementById('first').innerHTML=massAns[4].ans[0]; document.getElementById('first2').innerHTML=massAns[4].ans[1]; document.getElementById('first3').innerHTML=massAns[4].ans[2]; document.getElementById('first4').innerHTML=massAns[4].ans[3]; need=" Какое из перечисленных морей самое солённое?"; } else if(mass!=need){ document.getElementById('first').innerHTML=""; document.getElementById('first2').innerHTML=""; document.getElementById('first3').innerHTML=""; document.getElementById('first4').innerHTML=""; //need=[]; } mass=r.shift(MassQues.length-1); if(yourAns[i]!=massAns[i].CorrecT){ score; //alert(yourAns); } else { score++;} } document.getElementById('questions').innerHTML=mass; } </script> ---Код HTML--- <div style="margin-top:5px; color:#0099FF;">Вопросы: <div id="questions"></div> </div> <script type="text/javascript"> for(var q=0;q<4;q++){ var g=0; g++; } </script> <form name="fir" style="float:left;"> <input name="q"+'g' type="radio" value="' + i + '" onClick="Engine(' + q + ', this.value)" style="float:left;"/><div id="first" style="float:left;color:#333333;"></div> <br/> <input name="q"+'g' type="radio" value="' + i + '" onClick="Engine(' + q + ', this.value)" style="float:left;"/><div id="first2" style="float:left;color:#333333;"></div> <br/> <input name="q"+'g' type="radio" value="' + i + '" onClick="Engine(' + q + ', this.value)" style="float:left;"/><div id="first3" style="float:left;color:#333333;"></div> <br/> <input name="q"+'g' type="radio" value="' + i + '" onClick="Engine(' + q + ', this.value)" style="float:left;"/><div id="first4" style="float:left;color:#333333;"></div> <br/> <br/> <input type="button" name="nexT" onclick="Braine()" value="Следующий"/> </form> Есть массив MassQues, состоящий из одних вопросов и массив massAns, состоящий из вариантов ответов и индекса правильного варинта, каждому вопросу соответствует свой вариант ответа. Вопросы и ответы выводятся в документе через document.getElementById('').innerHTML, каждый выводимый вариант ответа имеет свой radio, где при клике срабатывает функция Engine(), в которую передаётся индекс массива и value radio и сохраняется в массиве yourAns, затем yourAns сравнивается с massAns.CorrecT индексом и value, если они не равны, то ответ не верен, иначе +1. Так, а проблема вот в чём: дело в том, что индекс массива и value radio не передаётся, ибо у меня не правильное значение value стоит в radio, кстати, возможно причина ещё в чём-то, и, наверное много лишнего написано, но всё же наведите на истину или предложите как можно сделать иначе, я хочу, просто, чтобы у меня весь выводился только лишь в 4 тегах <input/>. Нету опыта в Javascript. Надеюсь на ваш мозг:p |
var massQ=[ { Q: " Кто создал Os Windows Xp ?", ans: ["a) Билл Гейтс ", "b) Петрович, после литра, машину времени создал из бутылок", "c) Мой мозг", "d) Я шо знаю ?" ], CorrecT:0 }, { Q: " Что такое википедия ?", ans: ["a) Справочник по городским телефонам ", "b) Видео пособие по ловле мух", "c) Веб-инцеклопедия", "d) Заметки Петровича на счёт размножения колорадских жуков" ], CorrecT:2 }, { Q: " Кто такой Ктулху ?", ans: ["a) Речной леший ", "b) Донное морское чудище", "c) Петрович с бодуна", "d) Морской коралловый краб" ], CorrecT:1 }, { Q: " Столица Венгрии ?", ans: ["a) Стамбул ", "b) Будапешт", "c) Копенгаген", "d) Прага" ], CorrecT:1 }, { Q:" Какое из перечисленных морей самое солённое?", ans: ["a) Чёрное море ", "b) Жёлтое море", "c) Красное море", "d) Мраморное море" ], CorrecT:2 } ]; var i,j,yourAns=[],r=[]; while (massQ.length) r.push(MassQ.splice(Math.random()*MassQ.length,1)); massQ = r; for (i=0,i<massQ.length,i++){ document.write(massQ[i].Q+'<br>'); for (j=0;j<massQ[i].ans.length;j++){ document.write('<INPUT type="radio" onclick="yourAns['+i+']='+(j==massQ[i].correcT ? 1:0)+';"> '+massQ[i].ans[j]+'<br>') } } function score(){ j=0; for (i=0;i<yourAns.length;i++) j+=yourAns[i]; alert("Ваш рейтинг: "+j+' баллов'); } document.write('<input type="button" value="Результат" onclick="score();"') Писал на скорую руку..... |
Спасибо, PeaceCoder, помогли, подкорректил ваш код под мои нужды.
|
Часовой пояс GMT +3, время: 12:09. |