Вот у меня есть какой-то список вопросов, с правильными вариантами ответов
(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х вариантов правильных, засчитывало
один балл?