Uncaught TypeError: Cannot read property 'checked' of null

194
15 августа 2017, 16:44

В ЧЕМ ОШИБКА. как исправить?

function CheckTest() { 
  var qCounts = parseInt(document.getElementById('sQuestionsCount').innerHTML); 
  var maxScore = parseFloat(document.getElementById('sMaxPoints').innerHTML); 
  var curScore = 0; 
  for (var i = 1; i <= qCounts; i++) { 
    var ansCounts = document.getElementById('dqres' + i).getAttribute('answerscount'); 
    var scoringType = document.getElementById('dqres' + i).getAttribute('scoringtype'); 
    var answertype = document.getElementById('dqres' + i).getAttribute('answertype'); 
    var iFilled = false; 
    for (var j = 1; j <= ansCounts; j++) { 
      var input = document.getElementById('ans' + i + "-" + j); 
      if (answertype == "10") { 
        if (input.checked) { 
          iFilled = true; 
          if (scoringType == "0") curScore = curScore + parseInt(input.getAttribute("score")); 
        } 
      }
<input id="bntcheck" type="button" onclick="CheckTest(" ");" value="Перевірити" class="otp-test-checkresult-btn"></input> 
<div id="dResults" class="otp-test-results"> 
  <span class="otp-test-results-header">Ваш результат:</span> 
  <div class="otp-test-results-vals"> 
    <span class="otp-test-results-text">Кількість балів:</span> 
    <span id="sScore" class="otp-test-results-value"></span><br /> 
    <span class="otp-test-results-text">Відсоток рішення:</span> 
    <span id="sPercent" class="otp-test-results-value"></span><br /> 
    <span class="otp-test-results-text">Оцінка:</span> 
    <span id="ocenka" class="otp-test-results-value"></span> 
  </div>

Answer 1
var input = document.getElementById('ans' + i + "-" + j);

Нет такого элемента.

Answer 2

Всё что я могу сказать по вашей проблеме, так это то, что не правильно отрабатывает строка

var input = document.getElementById('ans' + i + "-" + j);

То есть не правильно формируется идентификатор 'ans' + i + "-" + j, судя по всему такого элемента просто нет. Предлагаю вывести результат в консоль. Добавив после приведённой строки строку

console.log('ans' + i + "-" + j)

И убедиться в том, что элемент с таким идентификатором действительно есть на странице

READ ALSO
цикл js, работа с данными

цикл js, работа с данными

как в цикле перед присвоением атрибута удалить у всех абсолютно других совпадений до начала цикла этот самы атрибут selected?

199
Скрыть пункт меню в select

Скрыть пункт меню в select

Нужно скрыть часть пунктов selectТо есть, чтобы при выборе "Цветная" скрылись пункты с value="2", а при выборе "Чёрно-белая" - value="1"

184
Поворот картинки canvas + js

Поворот картинки canvas + js

ЗдравствуйтеНедавно нашёл функцию для поворота картинки, но проблема в том, что мне нужно установить таймер на поворот картинки, а здесь...

227