Here is a very simple JavaScript quiz for you to try and have some fun with!
For this quiz, I wrote a very simple quiz engine using JavaScript and some JQuery APIs. To create a quiz all you need to do is create a JSON object which contains Question / Answer info and pass it to a single API. The engine will:
- determine if a question has a single answer or multiple answer and show radio buttons or check boxes accordingly.
- display user progress
- display results and correct / incorrect questions.
Then create a JSON object of your questions and answers. The JSON object is an array of Question / Answer. Each element in the array consist is a map of three elements:
- The question
- The possible answers (the answers to present to the user) - specified as an ordered array.
- The correct answer
var quiz_questions = {questions:[ {"question":"Which of the following is a risk of using Constructor function?", "answers":["If it is invoked without usingThe correct answer is a numeric value, which represents the position in the list of the possible answers. If there is more than one correct answer, separate the correct answers by commas. For example:new
keyword, thethis
variable is not bound to local object but to the global namespace.", "Performance risk", "There are no risks"], "correct_answer":"0"}, ...]
{"question":"Which of the following is true about functions?", "answers":["Functions can be expressed as literals", "Functions can be assigned to variables, array entries and properties of other objects", "Passed as arguments to other functions", "Returned as values from functions", "Can have properties created and assigned dynamically", "Can solve climate change?"], "correct_answer":"0,1,2,3,4"}The engine will use check boxes for questions that have multiple answers and radio boxes for questions that have a single answer. To invoke the engine, it is just one API.
quizModule(quiz_questions, $('#intro'));In this case
$('#intro')
is the dom element I want the quiz to sit below. quiz_questions
is the JSON object containing the question / answer pairings.
There is no server request handling whatsoever after the quiz loads. Everything happens client side from the first question to the generation of results.
If you have any interesting JavaScript questions send them on and I'll add them to the quiz! Or use the engine and create your own quiz.
Hi Alex Staveley
ReplyDeletei am not technical person,
so i can't understand this
but i need this script for my General Knowledge Blog
so,
can you explain more?
Multiple answers? How would I do this?
ReplyDeleteIf you specify more than one correct answer in the JSON the engine detects the question has multiple answers and does everything for you.
ReplyDeleteHi is it possible for me to use sounds or images in the question as well as answers?
ReplyDeletetanx dude tanx alot.......
ReplyDelete