多项选择题如何使选项非随机化
Quiz Multiple choice how to make options non-randomized
我有一个选择题,是别人做的,但是他现在没空帮我。我是编程新手。我想让我的选择井然有序。现在,当我输入选项时,选项1总是正确的答案,代码会自动随机化选项,所以当我的学生做测试时,正确的选项不会总是选项1。有人可以帮助我,使选项将在相同的顺序,因为我把他们在代码,而它也可以检测到正确的答案?谢谢你!
Javascript:$(document).ready(function () {
var questionNumber=0;
var questionBank=new Array();
var stage="#game1";
var stage2=new Object;
var questionLock=false;
var numberOfQuestions;
var score=0;
$.getJSON('activity.json', function(data) {
for(i=0;i<data.quizlist.length;i++){
questionBank[i]=new Array;
questionBank[i][0]=data.quizlist[i].question;
questionBank[i][1]=data.quizlist[i].option1;
questionBank[i][2]=data.quizlist[i].option2;
questionBank[i][3]=data.quizlist[i].option3;
questionBank[i][4]=data.quizlist[i].option4;
questionBank[i][5]=data.quizlist[i].option5;
}
numberOfQuestions=questionBank.length;
scrambleDatabase();
displayQuestion();
})//gtjson
fillDB();
function scrambleDatabase(){
for(i=0;i<60;i++){
var rnd1=Math.floor(Math.random()*questionBank.length);
var rnd2=Math.floor(Math.random()*questionBank.length);
var temp=questionBank[rnd1];
questionBank[rnd1]=questionBank[rnd2];
questionBank[rnd2]=temp;
}//i
}//scdb
function displayQuestion(){
var rnd=Math.random()*3;
rnd=Math.ceil(rnd);
var q1;
var q2;
var q3;
var q4;
var q5;
if(rnd==1){q1=questionBank[questionNumber][1];q2=questionBank[questionNumber][2];q3=questionBank[questionNumber][3];q4=questionBank[questionNumber][4];q5=questionBank[questionNumber][5];}
if(rnd==2){q2=questionBank[questionNumber][1];q3=questionBank[questionNumber][2];q1=questionBank[questionNumber][3];q4=questionBank[questionNumber][4];q5=questionBank[questionNumber][5];}
if(rnd==3){q3=questionBank[questionNumber][1];q4=questionBank[questionNumber][2];q5=questionBank[questionNumber][3];q1=questionBank[questionNumber][4];q2=questionBank[questionNumber][5];}
if(rnd==4){q4=questionBank[questionNumber][1];q5=questionBank[questionNumber][2];q1=questionBank[questionNumber][3];q2=questionBank[questionNumber][4];q3=questionBank[questionNumber][5];}
if(rnd==5){q5=questionBank[questionNumber][1];q1=questionBank[questionNumber][2];q2=questionBank[questionNumber][3];q3=questionBank[questionNumber][4];q4=questionBank[questionNumber][5];}
$(stage).append('<div class="questionText"><img src="play.png"></br>What sound is this?</div><div id="1" class="option">'+q1+'</div><div id="2" class="option">'+q2+'</div><div id="3" class="option">'+q3+'</div><div id="4" class="option">'+q4+'</div><div id="5" class="option">'+q5+'</div>');
$('.option').click(function(){
if(questionLock==false){questionLock=true;
//correct answer
if(this.id==rnd){
$(stage).append('<div class="feedback1"><img src="happy.png">CORRECT</div>');
currentSoundName="sounds/correct.mp3";
$("#dummy")[0].innerHTML='<audio id="correcttag" src='+currentSoundName+' autobuffer="autobuffer"></audio>';
$('#correcttag')[0].play();
score++;
}
//wrong answer
if(this.id!=rnd){
$(stage).append('<div class="feedback2"><img src="sad.png">WRONG</div>');
currentSoundName="sounds/incorrect.mp3";
$("#dummy")[0].innerHTML='<audio id="correcttag" src='+currentSoundName+' autobuffer="autobuffer"></audio>';
$('#correcttag')[0].play();
}
setTimeout(function(){changeQuestion()},1000);
}})
currentSoundName="sounds/"+questionBank[questionNumber][0];
$('.questionText').click(function(){
$("#dummy")[0].innerHTML='<audio id="audiotag" src='+currentSoundName+' autobuffer="autobuffer"></audio>';
$('#audiotag')[0].play();
})
}//display question
function changeQuestion(){
questionNumber++;
if(stage=="#game1"){stage2="#game1";stage="#game2";}
else{stage2="#game2";stage="#game1";}
if(questionNumber<numberOfQuestions){displayQuestion();}else{displayFinalSlide();}
$(stage2).animate({"right": "+=800px"},"slow", function() {$(stage2).css('right','-800px');$(stage2).empty();});
$(stage).animate({"right": "+=800px"},"slow", function() {questionLock=false;});
}//change question
function displayFinalSlide(){
$(stage).append('<div class="questionText">You have finished the quiz!<br><br>Total questions: '+numberOfQuestions+'<br>Correct answers: '+score+'</div>');
}//display final slide
});//doc ready
html: <!DOCTYPE html>
<head>
<title>Quiz</title>
<link href="main.css"rel="stylesheet"type="text/css"/>
<meta name=viewport content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<script src="jquery.js"></script>
<script src="controller.js"></script>
</head>
<body>
<div id="topbar">Quiz</div>
<div class="spacer"></div>
<div id="navContent">
<div id="game1"></div>
<div id="game2"></div>
</div>
<span id="dummy"></span>
</body>
</html>
我的问题数据库是一个json文件像这样:json:
{"quizlist":[
{
"question":"ba.mp3",
"option1":"a",
"option2":"b",
"option3":"c",
"option4":"d",
"option5":"e"
}
我会做以下编辑:
首先编辑你的问题数据库json文件,包括一个额外的字段为正确的答案(使用答案的数字):
{"quizlist":[
{
"question":"ba.mp3",
"answerswer":2,
"option1":"a",
"option2":"b",
"option3":"c",
"option4":"d",
"option5":"e"
}
然后将这个答案读入你的数据库数组:
questionBank[i][0]=data.quizlist[i].question;
questionBank[i][1]=data.quizlist[i].option1;
questionBank[i][2]=data.quizlist[i].option2;
questionBank[i][3]=data.quizlist[i].option3;
questionBank[i][4]=data.quizlist[i].option4;
questionBank[i][5]=data.quizlist[i].option5;
questionBank[i][6]=data.quizlist[i].answer;
然后删除随机化答案的部分,然后按顺序将答案读入变量中,并将正确的答案存储在RND中(我将重命名该变量):
function displayQuestion(){
var q1 = questionBank[questionNumber][1];
var q2 = questionBank[questionNumber][2];
var q3 = questionBank[questionNumber][3];
var q4 = questionBank[questionNumber][4];
var q5 = questionBank[questionNumber][5];
var rnd = questionBank[questionNumber][6];
$(stage).append('<div class="questionText"><img src="play.png"></br>What sound is this?</div><div id="1" class="option">'+q1+'</div><div id="2" class="option">'+q2+'</div><div id="3" class="option">'+q3+'</div><div id="4" class="option">'+q4+'</div><div id="5" class="option">'+q5+'</div>');
应该可以了
编辑:这不是我最喜欢的制作多选题测验的方式,但它应该给你你想要的,对你现有的代码进行最小的编辑。
相关文章:
- 如何从外部页面激活非默认引导选项卡
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 如何创建一个随机的计算机选项,除了你已经选择的选项
- 如何在非活动时间后添加随机输入
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- 选择非空选项后,默认选项消失
- 页面刷新后,所选选项卡处于非活动状态
- 如何提交从列表中随机选择的非重复变量
- 非活动选项卡容器内的选定宽度问题
- 使选项卡处于活动/非活动状态未显示正确的数据
- 是否可以使用chrome扩展名与非活动选项卡中的内容元素进行交互
- Javascript测试-使用Array.prototype以随机顺序显示选项
- 如何在 JavaScript 中实现用于设置和获取选项的非 CQS API
- 选择选项的初始加载,但非持久
- 禁用对单个非映射选项字段的验证检查
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- 零剪贴板元素在位于辅助/非默认 jQuery 选项卡中时不起作用
- Android的Javascript引擎选项(非WebKit)
- 多项选择题如何使选项非随机化
- 如何用JavaScript以非随机的方式在一个范围内生成数字