Javascript 选择题测验,课堂正确与错误

Javascript 选择题测验,课堂正确与错误,javascript,multiple-choice,Javascript,Multiple Choice,我创建了一个选择题测验,它工作得很好,我的意思是把总分写在网站上,但我想把它改为在点击提交按钮后,给所选的输入单选按钮一个额外的“正确”或“错误”CSS类 HTML: 问题1 问题1 测试1 测试2 测试3 问题2 问题2 测试4 测试5 测试6 问题3 问题3 测试7 测试8 测试9 问题4 问题4 测试10 测试11 测试12 提交 JavaScript: function submitAnswer() { var total = 4; var score = 0

我创建了一个选择题测验,它工作得很好,我的意思是把总分写在网站上,但我想把它改为在点击提交按钮后,给所选的输入单选按钮一个额外的“正确”或“错误”CSS类

HTML:


问题1
问题1

测试1
测试2
测试3
问题2 问题2

测试4
测试5
测试6
问题3 问题3

测试7
测试8
测试9
问题4 问题4

测试10
测试11
测试12
提交
JavaScript:

function submitAnswer() {
      var total = 4;
      var score = 0;

      // Get User Input
      var q1 = document.forms["quizForm"]["q1"].value;
      var q2 = document.forms["quizForm"]["q2"].value;
      var q3 = document.forms["quizForm"]["q3"].value;
      var q4 = document.forms["quizForm"]["q4"].value;

      // Validation
      for(i = 1; i <= total; i++){
          if(eval('q'+i) == null || eval('q'+i) == ''){
          alert('You missed question '+ i);
          return false;
        }
      }

      // Set Correct Answers
      var answers = ["a", "b", "c", "a"];

      // Check Answers
      for(i = 1; i <= total; i++){
        if(eval('q'+i) == answers[i - 1]){
          score++;
        } 
      }


      // Display results
      var results = document.getElementById('results');

      results.innerHTML = '<h3>You scored <span>'+score+'</span> out of <span>'+total+'</span></h3>';          


      return false;
    }
函数submitAnswer(){
var总计=4;
var得分=0;
//获取用户输入
var q1=document.forms[“quizForm”][“q1”]值;
var q2=document.forms[“quizForm”][“q2”]值;
var q3=document.forms[“quizForm”][“q3”]值;
var q4=document.forms[“quizForm”][“q4”]值;
//验证
对于(i=1;i你可以使用它。所以在你的JS中你可以这样做
document.getElementById('q4a').classList.add('correct')
document.getElementById('q4b').classList.add('error')

document.getElementById('q4c').classList.add('error'))

那么你的问题是什么?op想在已检查的收音机BTNSI中添加一个正确或错误的类。这个函数是否真的按照你期望的方式工作?你使用的是eval,我不鼓励在代码中使用它。还有多种形式吗?对不起,完全忘记我的问题。因此,我只需要基本上一段code当我点击提交按钮时,所有正确的问题都会得到一个“正确”的类,或者如果答案是错误的,他们会得到一个“错误”的类。orangespark-是的,这段代码正在工作,但它只是在网站上写总分,我基本上不需要。谢谢Alex,但问题是“q4a”“q4b”“q4c”总是随着用户的变化而变化让我们给出不同的答案。因此,我应该将所有选定的答案存储在一个数组中(不确定是否可行)并访问它们。在添加之前,您可以从所有输入中删除所有正确和错误的类。您可以先检查值。因此,您应该执行以下操作:if(document.forms[“quizForm”][“q1”]。value==document.getElementById('q4a').value){document.getElementById('q4a').classList.add('correct')}其他{document.getElementById('q4a').classList.add('error')}
function submitAnswer() {
      var total = 4;
      var score = 0;

      // Get User Input
      var q1 = document.forms["quizForm"]["q1"].value;
      var q2 = document.forms["quizForm"]["q2"].value;
      var q3 = document.forms["quizForm"]["q3"].value;
      var q4 = document.forms["quizForm"]["q4"].value;

      // Validation
      for(i = 1; i <= total; i++){
          if(eval('q'+i) == null || eval('q'+i) == ''){
          alert('You missed question '+ i);
          return false;
        }
      }

      // Set Correct Answers
      var answers = ["a", "b", "c", "a"];

      // Check Answers
      for(i = 1; i <= total; i++){
        if(eval('q'+i) == answers[i - 1]){
          score++;
        } 
      }


      // Display results
      var results = document.getElementById('results');

      results.innerHTML = '<h3>You scored <span>'+score+'</span> out of <span>'+total+'</span></h3>';          


      return false;
    }