为什么我为不同的条件放了不同的 if 语句却只输出一个?

Why is only one if statement output when I have put different ones for different conditions?

我编写的代码有一些简单的数学问题。当用户按下提交时,if 语句将确定文本框是否为空或是否有一些输入。我放了一个 if 语句,如果用户答对了问题,它就会记录下来。写正确,如果它是空的,它会写 not answered 等等。取而代之的是,无论文本框是否为空或答案是否错误,它都会输出正确的结果。我知道 document.write 不受欢迎,但我是初学者所以请帮助我。

document.getElementById("q1");
document.getElementById("q2");
document.getElementById("q3");
document.getElementById("q4");
document.getElementById("a1");
document.getElementById("a2");
document.getElementById("a3");
document.getElementById("a4");
document.getElementById("submit");

function check() {

 if((q1.value == 6084) || (q1.value == 6,084)){
  document.write("<b>" + "1. Correct" + "</b>");
 } else if(q1.value.length == 0){
  document.write("<b>" + "1. Not Answered" + "</b>");
 }
 else {
   document.write("<b>" + "1. Incorrect" + "</b>");
  }
 
}
<!DOCTYPE html>
<html>
<head>
 <title>Quiz1</title>
</head>
<body>
<h1 align = "center">Math Test ✍</h1>
<h3 id = "q1">Question 1 : 78 * 78 = ?</h3>
<input id = "a1" type = "text" required>
<h3 id = "q2">Question 2 : (100 / 6) + 45 = ?</h3>
<input id = "a2" type = "text">
<h3 id = "q3">Question 3 : 87 + 123 = ?</h3>
<input id = "a3" type = "text">
<h3 id = "q4">Question 4 : 100 - 23 = ?</h3>
<input id = "a4" type = "text">
<br>
<br>
<button id = "submit" onclick = "check()">I'm Done!</button>



</body>
</html>

Bergi 对这个问题的评论找到了这个问题的根本原因,所以我将尝试帮助解决它。

首先,如果所有这些答案都是数字,您应该使用 number type inputs。这将阻止用户输入 non-numerical 个字符,这意味着您只需担心 6084 而不是 6,084,因此您可以继续删除 || (q1.value == 6,084) ].

其次,我没有看到您在任何地方分配变量 q1。您的意思是将 document.getElementById("a1") 的结果赋值给变量 q1 吗?如果你这样做了,那么你需要通过写 const q1 = document.getElementById("a1") 来分配它。如果仍然不起作用,请将 console.log(q1) 放在 check 函数的第一行,看看您正在使用的是什么。

或者,如果您想保持 ID 和变量名称相同。使用 const a1 = document.getElementById("a1") 然后将 check 函数中对 q1 的每个引用更改为 a1.

试试这个代码

您需要检查您从表单提供的数据的有效性,并计算用户正确给出了多少答案

function check() {

    var a1 = document.getElementById("a1").value;
    var a2 = document.getElementById("a2").value;
    var a3 = document.getElementById("a3").value;
    var a4 = document.getElementById("a4").value;

    if (isNaN(a1) || a1 == "") {
        alert("Please answer question 1 or enter a number value");
    } else if (isNaN(a2) || a2 == "") {
        alert("Please answer  question 2 or enter a number value");
    } else if (isNaN(a3) || a3 == "") {
        alert("Please answer question 3 or enter a number value");
    } else if (isNaN(a4) || a4 == "") {
        alert("Please answer question 4 or enter a number value");
    } else {
        let count = 0;
        if (a1 == 6084) {
            count++;
        }
        if (a2 == 61.66) {
            count++;
        }
        if (a3 == 210) {
            count++;
        }
        if (a4 == 77) {
            count++;
        }

        document.write("<h2>You have " + count + " correct answer out of 4 questions</h2>")
    }

}
<!DOCTYPE html>
<html>
<head>
 <title>Quiz1</title>
</head>
<body>
<h1 align = "center">Math Test ✍</h1>
<h3 id = "q1">Question 1 : 78 * 78 = ?</h3>
<input id = "a1" type = "text" required>
<h3 id = "q2">Question 2 : (100 / 6) + 45 = ?</h3>
<input id = "a2" type = "text">
<h3 id = "q3">Question 3 : 87 + 123 = ?</h3>
<input id = "a3" type = "text">
<h3 id = "q4">Question 4 : 100 - 23 = ?</h3>
<input id = "a4" type = "text">
<br>
<br>
<button id = "submit" onclick = "check()">I'm Done!</button>



</body>
</html>