Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите найти ошибку (https://javascript.ru/forum/misc/42737-pomogite-najjti-oshibku.html)

TatyanaSPK 07.11.2013 14:35

Помогите найти ошибку
 
Добрый день, помоги найти в чем причина не работы кода, а именно нет никакой реакции на условия
if (answer[0].checked) VC1=25;
if (answer[1].checked) VB1=25;
if (answer[2].checked) VA1=25;
if (answer[3].checked) VD1=25;....
Суть в том, что нужно создать тест, котором ответив на вопросы, с помощью кнопки "Завершить тест" выводится результат: сколько % ответов выбрано типа A,B,C,D. Всего 4 вопроса и 4 варианта ответа, соответственно на каждый тип ответа приходиться по 25%.
Всё работает кроме подсчета результатов.
Сразу скажу, что код написан очень коряво, так как я новичок в этом деле.

<head>
<meta charset="utf-8">
<title>Тест</title>
</head>

<body>
            <h2><center>Несложный Тест</center></h2>
<script type="text/javascript">

//Массив, в котором содержаться вопросы (всего 4 вопроса)  
var q=new Array ( 
 'Вопрос 1.',  'Вопрос 2.','Вопрос 3.', 'Вопрос 4.');
//Массив, в котором содержаться ответы. 4 варианта ответа с типом A,B,C,D
var answer = new Array (
 '11q','12q,'13q','14q','21q','22q','23q','24q','31q','32q','33q ','34q','41q','42q','43q','44q');


//Идёт вывод массивов (оформлено в таблице)
document.writeln ('<form name="f1" action="" method="post">'+
   '<table width="90%" align="center" border="0" cellpadding="4" cellspacing="0">'
);


 document.writeln ('<tr><td align="center"></td><td>'+q[0]+'</td></tr>');for (var j=0; j<4; j++)
 document.writeln ('<tr><td align="center"></td><td><input type="radio" name="r1" >'+answer[j]+'</td></tr>');

 document.writeln ('<tr><td align="center"></td><td>'+q[1]+'</td></tr>');for (var k=4; k<8; k++)
 document.writeln ('<tr><td align="center"></td><td> <input type="radio" name="r2" >'+answer[k]+'</td></tr>');

  document.writeln ('<tr><td align="center"></td><td>'+q[2]+'</td></tr>');for (var l=8; l<12; l++)
 document.writeln ('<tr><td align="center"></td><td><input type="radio" name="r3" >'+answer[l]+'</td></tr>');

  document.writeln ('<tr><td align="center"></td><td>'+q[3]+'</td></tr>');for (var h=12; h<16; h++)
 document.writeln ('<tr><td align="center"></td><td><input type="radio" name="r4" >'+answer[h]+'</td></tr>');


// Вывод результатов происходит с помощью кнопки и функции results()
document.writeln ('</table><center><input type="button" value="Завершить тест" onclick="results();"><input type="reset" value="Очистить"></center></form>'); 

function results()
{

  var VA1=0; VB1=0; VC1=0; VD1=0; VA2=0; VB2=0; VC2=0; VD2=0; VA3=0; VB3=0; VC3=0; VD3=0; VA4=0; VB4=0; VC4=0; VD4=0;
// УСЛОВИЯ
  if (answer[0].checked) VC1=25;
  if (answer[1].checked) VB1=25;
  if (answer[2].checked) VA1=25;
  if (answer[3].checked) VD1=25;

  if (answer[4].checked) VB2=25;
  if (answer[5].checked) VC2=25;
  if (answer[6].checked) VD2=25;
  if (answer[7].checked) VA2=25;

  if (answer[8].checked) VD3=25;
  if (answer[9].checked) VC3=25;
  if (answer[10].checked) VA3=25;
  if (answer[11].checked) VB3=25;

  if (answer[12].checked) VB4=25;
  if (answer[13].checked) VA4=25;
  if (answer[14].checked) VD4=25;
  if (answer[15].checked) VC4=25;


  var VA = VA1 + VA2 + VA3 + VA4;
  var VB = VB1 + VB2 + VB3 + VB4;
  var VC = VC1 + VC2 + VC3 + VC4;
  var VD = VD1 + VD2 + VD3 + VD4;

  alert('Результаты тестирования: вопросов типа A выбрано '+VA+'%,  типа B - '+VB+'%, С - '+VC+'%, D - '+VD+'%');
}

   </script>
 </body>

Faab 07.11.2013 14:49

'11q','12q','13q','14q','21q','22q','23q','24q','31q','32q','33q ','34q','41q','42q','43q','44q');


Пропустили ковычку пере запятой

TatyanaSPK 07.11.2013 16:21

Это опечатка, когда код вводила, в оригинале всё на месте.

Faab 07.11.2013 16:42

..

TatyanaSPK 07.11.2013 16:52

Всё, ошибка найдена и исправлена.


Часовой пояс GMT +3, время: 15:31.