Показать сообщение отдельно
  #1 (permalink)  
Старый 22.08.2020, 01:35
Аспирант
Отправить личное сообщение для maplol123@gmail.com Посмотреть профиль Найти все сообщения от maplol123@gmail.com
 
Регистрация: 30.06.2019
Сообщений: 41

Правильная проверка чекбоксов
Вот у меня есть какой-то список вопросов, с правильными вариантами ответов (correct)
[
  {
    "question": "123",
    "answers": [
      "1231",
      "1231",
      "123",
      "124"
    ],
    "correct": [2]
  },
  {
    "question": "124214",
    "answers": [
      "12312",
      "12321",
      "123213"
    ],
    "correct": [1]
  },
  {
    "question": "2152",
    "answers": [
      "12512",
      "125215",
      "121421",
      "124124"
    ],
    "correct": [1, 2, 4]
  },
  {
    "question": "12412521",
    "answers": [
      "15125125",
      "125125",
      "125125"
    ],
    "correct": [1, 2, 3]
  }
]

Я беру этот .json файл из сервера. Проверяю айди чекбокса по номеру из correct
let inp;
let answered = document.getElementById("answered");
let allque = document.getElementById("allque");
answered.value = 0;
////взятие файла с сервера
function checkright() {
  fetch("http://localhost:3000/public/data.json")
    .then((response) => {
      return response.json();
    })
////сама проверка чекбоксов
    .then((data) => {
      for (let i = 0; i < data.length; i++) {
        for (let j = 0; j < data[i].question.length; j++) {
          inp = document.getElementById(i + "_" + j);
          if (inp && inp.checked) {
            if (j + 1 == data[i].correct[j]) {
              answered.value++;
            } else {
              answered.value = 0;
            }
          }
        }
      }
      console.log(answered.value);
    });
}

В итоге, у меня на некоторых ответах, которые начинаются не с 1, неправильно проверяет и выводит результат = 0. Как сделать правильную проверку, и там, где более 2х вариантов правильных, засчитывало один балл?

Последний раз редактировалось maplol123@gmail.com, 22.08.2020 в 01:42.
Ответить с цитированием