在 HTML 中添加一个按钮
Add a button in HTML
我想制作一个问卷,询问问题,然后在页面末尾有一个名为"显示答案"的按钮,它将向用户显示他们得到的答案是正确的。
例如,如果我使用这个问题:
<p class="question">1. What is the answer to this question?</p>
<ul class="answerswers">
<input type="radio" name="q1" value="a" id="q1a"><label for="q1a">Answer 1</label><br/>
<input type="radio" name="q1" value="b" id="q1b"><label for="q1b">Answer 2</label><br/>
<input type="radio" name="q1" value="c" id="q1c"><label for="q1c">Answer 3</label><br/>
<input type="radio" name="q1" value="d" id="q1d"><label for="q1d">Answer 4</label><br/>
</ul>
我将如何为这段代码创建一个按钮,当按下该按钮时,它会告诉答案是否正确?
<p class="question">1. What is the answer to this question?</p>
<ul id="answerswers" class="answerswers">
<input type="radio" name="q1" value="a" id="q1a"><label for="q1a">Answer 1</label><br/>
<input type="radio" name="q1" value="b" id="q1b"><label for="q1b">Answer 2</label><br/>
<input type="radio" name="q1" value="c" id="q1c"><label for="q1c">Answer 3</label><br/>
<input type="radio" name="q1" value="d" id="q1d"><label for="q1d">Answer 4</label><br/>
<input type="button" value="submit" onClick="showAnswer()" />
</ul>
<span id="info"></span>
然后在该代码段上方添加一个脚本:
<script>
function showAnswer(){
if(document.getElementById('q1a').checked){
document.getElementById('info').innerHTML = "Correct!";
}else{
document.getElementById('info').innerHTML = "Incorrect!";
}
}
</script>
我不知道您的测验的答案,因此在这种情况下答案 1 是正确的。
-
两个
.addEventListeners()
- 容器上有一个,用于保存所有问题和答案(例如
#QA1
( - 另一个在完成测验时使用的按钮上(例如
#btn1
(
- 容器上有一个,用于保存所有问题和答案(例如
-
当用户选择答案时,
#QA1
将侦听任何单选按钮(例如.answers
(。将单个事件侦听器用于多个event.targets
(即单击的元素(比在每个单选按钮上添加一个事件侦听器要高效得多。通过比较实际点击的内容(单选按钮(和元素与侦听器,我们可以获得单选按钮的 ID。有关详细信息,请参阅此文章。 -
一旦确定了单击的单选按钮的 id(请参阅前面的参考(,它就会被推送到一个数组(例如
answers[]
(。 -
用户完成后,他/她单击"完成"按钮,触发
#btn1
的点击事件。for
循环用于遍历answer[]
数组和key[]
数组。在每次迭代(即循环(中,将两者进行比较以获得匹配的元素。- 结果打印在嵌套在有序列表 (
<ol>
( 中的<output>
元素#out1
上。
片段
var qa = document.getElementById('QA1');
var btn1 = document.getElementById('btn1');
var answers = [];
var key = ['q1c', 'q2a', 'q3d'];
qa.addEventListener('click', function(event) {
if (event.target != event.currentTarget) {
var choice = event.target.id;
answers.push(choice);
}
event.stopPropagation();
}, false);
btn1.addEventListener('click', function(event) {
event.preventDefault();
var qList = document.getElementsByClassName('question');
var out1 = document.getElementById('out1');
for (var i = 0; i < qList.length; i++) {
if (answers[i] === key[i]) {
out1.innerHTML += '<li>' + answers[i] + ' is correct</li>';
} else {
out1.innerHTML += '<li>' + answers[i] + ' is incorrect, the correct answer is ' + key[i] + '</li>';
}
}
}, false);
body {
font: 400 16px/1.45'Verdana';
}
* {
font: inherit;
}
.question {
margin-bottom: 15px;
}
.answers {
list-style: none;
}
.answers li {
margin-left: -15px;
}
input[type="radio"] {
position: relative;
top: 2.25px;
}
#btn1 a {
text-decoration: none;
}
#out1 {
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<ol id="QA1" class="QA">
<li id="q1" class="question">What is the answer to this question?
<ol class="answerswers">
<li>a.
<input type="radio" name="q1" value="a" id="q1a" />
<label for="q1a">Answer</label>
</li>
<li>b.
<input type="radio" name="q1" value="b" id="q1b" />
<label for="q1b">Answer</label>
</li>
<li>c.
<input type="radio" name="q1" value="c" id="q1c" />
<label for="q1c">Answer</label>
</li>
<li>d.
<input type="radio" name="q1" value="d" id="q1d" />
<label for="q1d">Answer</label>
</li>
</ol>
<!--answers-->
</li>
<!--question-->
<li id="q2" class="question">What is the answer to this question?
<ol class="answerswers">
<li>a.
<input type="radio" name="q2" value="a" id="q2a" />
<label for="q2a">Answer</label>
</li>
<li>b.
<input type="radio" name="q2" value="b" id="q2b" />
<label for="q2b">Answer</label>
</li>
<li>c.
<input type="radio" name="q2" value="c" id="q2c" />
<label for="q2c">Answer</label>
</li>
<li>d.
<input type="radio" name="q2" value="d" id="q2d" />
<label for="q2d">Answer</label>
</li>
</ol>
<!--answers-->
</li>
<!--question-->
<li id="q3" class="question">What is the answer to this question?
<ol class="answerswers">
<li>a.
<input type="radio" name="q3" value="a" id="q3a" />
<label for="q3a">Answer</label>
</li>
<li>b.
<input type="radio" name="q3" value="b" id="q3b" />
<label for="q3b">Answer</label>
</li>
<li>c.
<input type="radio" name="q3" value="c" id="q3c" />
<label for="q3c">Answer</label>
</li>
<li>d.
<input type="radio" name="q3" value="d" id="q3d" />
<label for="q3d">Answer</label>
</li>
</ol>
<!--answers-->
</li>
<!--question-->
</ol>
<!--QA-->
<button id="btn1"><a href="">DONE</a>
</button>
<ol>
<output id="out1"></output>
</ol>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Questionare</title>
</head>
<body>
<p>1. What is the answer to this question?</p>
<ul onclick="man()">
<input type="radio" name="q1" value="a">Answer 1<br/> <input type="radio" name="q1" value="b">Answer 2<br/>
<input type="radio" name="q1" value="c">Answer 3<br/>
<input type="radio" name="q1" value="d">Answer 4<br/>
</ul>
<p id="m"></p>
<script>
var man = function(){
document.getElementById("m").innerHTML = 'The correct answer is: Answer 1';
}
</script>
</body>
</html>
这是你想要的,以最简单的方式完成,使用CSS文档对象模型,供参考,请转到此处HTML CSS DOM
相关文章:
- 禁用旋转木马中的下一个按钮和上一个按钮
- 如何在用户返回和上一个按钮时刷新下拉列表
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 如何使用一个按钮编辑和保存使用Javascript
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 正如我所能做的引导提醒,按下一个按钮可以更改语言
- 当我的所有 Ng-from 都有效时启用一个按钮
- 一个按钮,点击后会生成一个新的文本框?-Javascript
- 我想在我的准备列表项上创建一个按钮
- JavaScript幻灯片显示,每个幻灯片的下一个按钮都有不同的位置
- 当我单击下一个或上一个按钮时,datatable显示旧值
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- Jquery:如果选中了另一个按钮,则为未选中按钮
- 使文本在它之后再次可见'It’s被一个按钮隐藏了
- 传递来自<输入类型=“;文件“;id=“;文件“/>尽管还有一个按钮点击
- 为缩略图库和较大图像库添加下一个和上一个按钮
- 当滑块只有一个图像时,如何禁用下一个/上一个按钮
- 图像缩略图库中的“下一个”和“上一个”按钮中的“问题”
- 点击一个按钮,有没有一种方法可以检查Div内部的图像