为了账号安全,请及时绑定邮箱和手机立即绑定

当str设置为opt2时,为什么分数会评估分数+1

当str设置为opt2时,为什么分数会评估分数+1

饮歌长啸 2021-04-26 20:17:44
我有一个函数,可以根据选择的选项来计算调查中的分数,但是我总是得到与第一个if条件相同的值var questions = [{        "question": "L'impact est ",        option1: "faible",        option2: "moyen",        option3: "haut",    },   var currentQuestion = 0;var score1 = 0;var totQuestions = questions.length;var number = 0;var progressText = document.getElementById("progressText");var container = document.getElementById('quizContainer');var questionEl = document.getElementById('question');var opt1 = document.getElementById('opt1');var opt2 = document.getElementById('opt2');var opt3 = document.getElementById('opt3');var nextButton = document.getElementById('nextButton');var resultCont = document.getElementById('result');function loadQuestion(questionIndex) {    var q = questions[questionIndex];    questionEl.textContent = (questionIndex + 1) + '. ' + q.question;    opt1.textContent = q.option1;    opt2.textContent = q.option2;    opt3.textContent = q.option3;    progressText.innerText = questionIndex + 1 + ' de ' + totQuestions + ' questions '; };  function loadNextQuestion() {    var selectedOption = document.querySelector('input[type=radio]:checked');    if (!selectedOption) {        alert('veuillez sélectionner votre réponse');        return;    }        var answer =selectedOption.Value;            if (questions[currentQuestion].opt1 == answer) {            score1 += 1;        } else if (questions[currentQuestion].opt2 == answer) {            score1 += 2;        } else {             score1 += 3    }    selectedOption.checked = false;    currentQuestion++;    progressText.textContent = questionEl / totQuestions    if (currentQuestion == totQuestions - 1) {        nextButton.textContent = 'Finish';    }    if (currentQuestion == totQuestions) {        container.style.display = 'none';        resultCont.style.display = '';        resultCont.textContent = 'le résultat est ' + ' ' + score1 + ' ' +answer+' '+ option1 ;        return;    }    loadQuestion(currentQuestion);};loadQuestion(currentQuestion);
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

如果我对您的理解很好,那么您的问题可能是由于以下另一个原因:

  1. 您不会在<select>元素上触发更改事件。

  2. answer的价值,您可能需要使用.selectedIndex获得的回答值。

看看 onchange事件.selectedIndex

var questions = [{

  opt1: "Answer 1",

  opt2: "Answer 2",

  opt3: "Answer 3"

}];


// score1, currentQuestion variables defined as example

var currentQuestion = 0;

var score1 = 1;


var sel = document.getElementById("sel");


sel.addEventListener("change", function() {

  var answer = this.options[this.selectedIndex].value;

  if (questions[currentQuestion].opt1 == answer) {

    score1 += 1;

  } else if (questions[currentQuestion].opt2 == answer) {

    score1 += 2;

  } else {

    score1 += 3;

  }

  console.log("score1 = " + score1)

});

<div id="q"></div>

<select id="sel">

  <option value="Answer 1">Answer 1</option>

  <option value="Answer 2">Answer 2</option>

  <option value="Answer 3">Answer 3</option>

</select>


查看完整回答
反对 回复 2021-05-06
  • 1 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信