使用单选按钮和数组进行 Javascript 测试

标签 javascript html validation radio-button

我正在学习 Javascript,但我无法弄清楚如何使用纯 Javascript(无 jQuery)创建测试。

理想情况:

  1. 系统会向用户提出问题并提供单选按钮选项。
  2. 用户根据问题选择单选按钮
  3. 提交后,会将选项与包含答案的数组进行比较。
  4. 单选按钮不能留空。如果选择与答案不相等,则提醒用户。

到目前为止,我已经尝试过嵌套 for 循环和分隔 if/else 语句,但没有成功。

提前非常感谢!

var answers = [
	0, // Answer for question0
  1, // Answer for question1
  2 // Answer for question2
];

var question = [];

function grade(){
  for(var i = 0; i < 10; i++){
    question[i] = document.querySelector("input[name='question" +  i + "']");
    if(question[i].checked){
      if(question[i].value = answers[i]){
        alert("question " + i + " is correct!");
      }
      else{
        alert("Incorrect! Try again.");
      }
    } 
    else{
      alert("Select a valid choice!");
    }
  }
}
<form>
  <input type="radio" name="question0" value="0">Option A<br>
  <input type="radio" name="question0" value="1">Option B<br>
  <input type="radio" name="question0" value="2">Option C
  
  <hr>
  
  <input type="radio" name="question1" value="0">Option A<br>
  <input type="radio" name="question1" value="0">Option B<br>
  <input type="radio" name="question1" value="0">Option C
  
  <hr>
  
  <input type="radio" name="question2" value="0">Option A<br>
  <input type="radio" name="question2" value="1">Option B<br>
  <input type="radio" name="question2" value="2">Option C<br>
  <input type="radio" name="question2" value="3">Option D
  
  <hr>
  
  <input type="submit" onClick="grade();" value="Grade">
</form>

最佳答案

请找到编辑后的工作代码。它可能对你有帮助。

var answers = [
    0, // Answer for question0
  1, // Answer for question1
  2 // Answer for question2
];

var question = [];

function grade(){

  for (var i = 0, ques = 3; i < ques; i++) {
    var radios = document.getElementsByName('question'+ i +'[]');

    for (var j = 0, length = radios.length; j < length; j++) {
        if (radios[j].checked) {

            if(radios[j].value == answers[i]){
              alert("question " + i + " is correct!");
            }
            else{
              alert("Incorrect! Try again.");
            }

            break;
        }
    }
  }

}
<form>
  <input type="radio" name="question0[]" value="0">Option A<br>
  <input type="radio" name="question0[]" value="1">Option B<br>
  <input type="radio" name="question0[]" value="2">Option C

  <hr>

  <input type="radio" name="question1[]" value="0">Option A<br>
  <input type="radio" name="question1[]" value="1">Option B<br>
  <input type="radio" name="question1[]" value="2">Option C

  <hr>

  <input type="radio" name="question2[]" value="0">Option A<br>
  <input type="radio" name="question2[]" value="1">Option B<br>
  <input type="radio" name="question2[]" value="2">Option C<br>
  <input type="radio" name="question2[]" value="3">Option D

  <hr>

  <input type="button" onClick="grade();" value="Grade">
</form>

关于使用单选按钮和数组进行 Javascript 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799808/

相关文章:

javascript - 我怎样才能用 Javascript 或 JQuery 做到这一点

html - 诺基亚 5800 浏览器中的 div 溢出

CSS 无法在表格上工作

validation - ASP.NET MVC 将 null 转换为零长度字符串

java - Spring Thymeleaf Hibernate 验证自定义消息在页面上不可用

jQuery 验证插件不适用于单选按钮

javascript - 为什么return false仍然允许提交表单?

javascript - 如何将 [Object HTML] 解析为 HTML 字符串

javascript - 使用 postgresql 保存数组进行 Sequelize

javascript - 替换字符串数组中的字符