Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2009, 04:12
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Помогите исправить ошибку в коде
<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.
Надеюсь на ваш мозг
Ответить с цитированием