Помогите исправить ошибку в коде
<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, время: 20:37. |