Итак, я пытаюсь создать интерактивную викторину, и я почти закончил. Только часть проверки ответа терпит неудачу. У меня есть массивы для вопросов, вариантов и правильного ответа, но сравнение просто не срабатывает.
function check(clicked_id)
{
document.getElementById("Question").value=" " + questionArray[i];
document.getElementById("OptionA").value=" " + aArray[i];
document.getElementById("OptionB").value=" " + bArray[i];
document.getElementById("OptionC").value=" " + cArray[i];
document.getElementById("OptionD").value=" " + dArray[i];
var selected = document.getElementById(clicked_id).value;
var answer = answerArray[i];
document.getElementById("text").innerHTML = answer + "<br>" + selected;
if (selected == answer) {
document.getElementById("comparison").innerHTML = "Correct";
} else {
document.getElementById("comparison").innerHTML = "Wrong";
}
}
И html-часть
<input onclick="check(this.id)" type="button" value="Click here to start" id="Question" /><br><br>
<input onclick="check(this.id)" type="button" value="" id="OptionA" />
<input onclick="check(this.id)" type="button" value="" id="OptionB" />
<input onclick="check(this.id)" type="button" value="" id="OptionC" />
<input onclick="check(this.id)" type="button" value="" id="OptionD" />
<div id="text"></div>
<div id="comparison"></div>
По какой причине это просто не работает, и я не понимаю, почему.
Кажется, вы добавляете пробелы в начало значения, но никогда не удаляете пробелы перед сравнением. По крайней мере, я не вижу, что вы делаете. Попробуй это.
var selected = document.getElementById(clicked_id).value.trim();
Вы должны обрезать оба значения во время сравнения. Что-то вроде этого.
if (selected.trim() == answer.trim()) {
document.getElementById("comparison").innerHTML = "Correct";
} else {
document.getElementById("comparison").innerHTML = "Wrong";
}
i
определен?selected
вами переменные и переменныеanswer
значения, которые вы ожидали. Не видя больше вашего кода, мы просто догадываемся. Вы можете положить это в скрипку ?