当前位置: 首页 > 知识库问答 >
问题:

DOM测验会给出错误答案

党宇定
2023-03-14

我正在学习DOM,希望创建一个简单的JavaScript with Html测验(用于练习)。现在我遇到的问题是,当我点击提交时,所有的答案都是对的,而不是一个是对的,三个是错的。我认为这是我的html和我将ID分配给不同标签的方式的问题,但我不能弄清楚我做错了什么。

代码

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="quiz.css">

  </head>

  <body>

<div class="QuestionOne">
  <form id="quizForm">
<h1> What is your favorite color?</h1>

<input type="radio" id="red" name="color" value="red">
<label for="red">Red</label><br>
<p></p>
<input type="radio" id="blue" name="color" value="blue">
<label for="blue">Blue</label><br>
<p></p>
<input type="radio" id="green" name="color" value="green">
<label for="green">Green</label>
<p></p>
<input type="submit" id="submit" name="color" value="Submit"><br>
</form>
</div>





<script src="quiz.js">

</script>
  </body>
</html>

quizForm.addEventListener("submit",function(event) {
  event.preventDefault();
  var grabAnswer = document.getElementById('red')
  console.log(grabAnswer.id);


  if (grabAnswer.id == 'red') {
    console.log('correct!');
  }else{
    console.log('wrong');
  }


})

多谢了。

共有1个答案

夏飞鹏
2023-03-14

问题是,您总是在grapAnswer中使用红色,但您必须使用var grabAnswer=document.QuerySelector('input[name=“color”]:checked');

演示

null

var quizForm = document.getElementById("quizForm")

quizForm.addEventListener("submit", function(event) {
  event.preventDefault();
  var grabAnswer = document.querySelector('input[name="color"]:checked');
  console.log(grabAnswer.id);


  if (grabAnswer.id == 'red') {
    console.log('correct!');
  } else {
    console.log('wrong');
  }


})
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="quiz.css">

</head>

<body>

  <div class="QuestionOne">
    <form id="quizForm">
      <h1> What is your favorite color?</h1>

      <input type="radio" id="red" name="color" value="red">
      <label for="red">Red</label><br>
      <p></p>
      <input type="radio" id="blue" name="color" value="blue">
      <label for="blue">Blue</label><br>
      <p></p>
      <input type="radio" id="green" name="color" value="green">
      <label for="green">Green</label>
      <p></p>
      <input type="submit" id="submit" name="color" value="Submit"><br>
    </form>
  </div>





  <script src="quiz.js">
  </script>
</body>

</html>
 类似资料:
  • 问题内容: 在该问题中,我引用了以下代码: 我在该问题中发现,该结果按model.classes_给出的顺序表示了属于每个类的点的概率 所以…如果正确解释,此答案表示该点可能是“橙色”(由于数据量很少,因此置信度较低)。但是直觉上,这个结果显然是不正确的,因为给出的点与“苹果”的训练数据相同。可以肯定的是,我也进行了相反的测试: 同样,显然是不正确的,但方向相反。 最后,我尝试了更远的点。 同样,

  • 我使用下面的代码来格式化日期。但是当我以不正确的格式给出数据时,它会给出意想不到的结果。 在上述情况下,输出为-formattedVal:0009-02-05。 它不是抛出解析异常,而是解析值并给我一个不正确的输出。有人能帮我理解这种反常的行为吗。

  • 问题内容: 我计算出以下内容: 即使执行10.0-9.2也可以得到上述结果。为什么多余的7会出现在结果中? 我在python 3.2上。 问题答案: 浮点算法基于数字的二进制近似,因此存在一些内置问题。 有一个很好的解释在Python文档。 如果您需要更准确的答案,则可以签出该模块。

  • 我正在努力学习同步。根据我所了解的,下面的代码应该给出8000作为最终结果,但是我得到了一个随机的结果,如下所示; 还是得到1293 2214 1403 3214 4214 5214 6224 7037这样的输出有没有人能给我解释一下如何实现同步,这里出了什么问题?

  • 尝试[解决]leetcode(322)中的问题: 你会得到不同面额的硬币和总金额。写一个函数来计算你需要的最少数量的硬币来组成这个数量。如果这些硬币的任何组合都不能弥补这个金额,返回-1。 我被困在这个输入:硬币=[2]和目标=3 我想知道它为什么返回0?我调试了这个,但没能弄清楚。

  • 问题内容: 我想从字符串中删除最后一次出现的“ \”这个特殊字符。我尝试了像这样的字符串函数 但是每次遇到错误时,我都要求加一个额外的报价。同时我发现(“ \”“)用来传递”这个特殊字符。我该如何进行? 问题答案: 您需要使用 字符串中的字符转义特殊字符(依此类推)。因此,在它们之前使用a 会使它成为 文字 ,这意味着java会将其后的内容视为常规字符。 你可以测试看看 将打印。它会打印。 所以: