用于多项选择测验的 Javascript

标签 javascript html css

有一个问题编号的下拉列表和一个用于选择答案的 radio 。问题是 1-30,答案是 A-E。点击提交(这将通过 post 方法将信息发送到外部数据库),一组 if-else 语句将确定答案是否正确。

此时,将出现文本(来自隐藏的 div),其中包含答案正确/不正确的陈述以及解释。我将有 60 个隐藏的 div(30 个说“正确,这是解释”,30 个说“不正确,这是解释”),每次点击提交按钮时都会触发一个。此外,应该有一个“再试一次”按钮,它会重置所有内容。

长话短说:

  • 根据问题/答案组合显示隐藏的 div 提交按钮被点击
  • 使用按钮重置所有内容,以便他们重试。

这是我的 jsfiddle:https://jsfiddle.net/astonishedowl/wjrngf5n/

$('#submit').onclick(function() {
  if ($("#question").val() == "1") {
    if ($("#answer").val() == "A") {
      $('#q1correct').show();
    } else $("#q1incorrect").show();
  } else if ($("#question").val() == "2") {
    if ($("#answer").val() == "B") {
      $('#q1correct').show();
    } else $("#q1incorrect").show();
  } else $("#whoops").show();
});
<form method="post">
  <select name="question" id="question">
    <option value="select">Select</option>
    <option value="1">1</option>
    <option value="2">2</option>
  </select>
  <br />
  <input type="radio" name="answer" value="A">A</input>
  <br />
  <input type="radio" name="answer" value="B">B</input>
  <br />
  <input type="radio" name="answer" value="C">C</input>
  <br />
  <input type="radio" name="answer" value="D">D</input>
  <br />
  <input type="radio" name="answer" value="E">E</input>
  <br />
  <input type="submit" value="Submit" id="submit" />
</form>
<div id="q1correct" style="display:none">question 1 correct</div>
<div id="q1incorrect" style="display:none">question 1 incorrect</div>
<div id="whoops" style="display:none">something went wrong</div>

最佳答案

我稍微改变了你的结构,希望你不介意

$('#submit').click(function() {
    $('.results').show();
    $('.selectedQ').html($('#question').val()); // set value
    $('.selectedA').html($('.answer:checked').val()); // set value
    $('.feedback').html(''); // clear text
    $('#submit').hide();
    if ($("#question").val() == "1") {
        if ($(".answer:checked").val() == "A") {
            $('.feedback').html('This answer is correct.');
        } else $('.feedback').html('This answer is NOT correct.');
    } else if ($("#question").val() == "2") {
        if ($(".answer:checked").val() == "B") {
            $('.feedback').html('This answer is correct.');
        } else $('.feedback').html('This answer is NOT correct.');
    } else $('.feedback').html('Whoops, please make sure you select a question and an answer');
});
$('#reset').click(function() {
	$('#question').val('');
    $('.answer').prop('checked', false);
    $('.results').hide();
    $('#submit').show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="question" id="question">
    <option value="select">Select</option>
    <option value="1">1</option>
    <option value="2">2</option>
</select>
<br />
<input type="radio" name="answer" class="answer" value="A">A</input>
<br />
<input type="radio" name="answer" class="answer" value="B">B</input>
<br />
<input type="radio" name="answer" class="answer" value="C">C</input>
<br />
<input type="radio" name="answer" class="answer" value="D">D</input>
<br />
<input type="radio" name="answer" class="answer" value="E">E</input>
<br />
<input type="submit" value="Submit" id="submit" />
<br/><br/>
<div class="results" style="display:none;">
    Selected Question: <span class="selectedQ"></span><br/>
    Selected Answer: <span class="selectedA"></span><br/>
    Result: <span class="feedback"></span><br/><br/>
    <input type="button" value="Reset" id="reset" />
</div>

关于用于多项选择测验的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764857/

相关文章:

javascript - JQuery 高度不返回准确高度

javascript - 将值传递到 $mdDialog Controller

javascript - 使用 jsoup 解析 JavaScript

html - 如何将 'ul' 居中?

html - 如何在固定高度的 <i> 标签中将图标对齐到中心

HTML如何保持div相互接触

javascript - 如何在搜索功能中处理 'No Results Found'

javascript - 在场景中维护一个动画 div

javascript - 如何用 Protractor 捕获 ngToast?

php - 导航栏 Logo 下降且按钮未正确折叠