JSFiddle - React, Tailwind, and code Playground
JavaScript
// Add as many questions as you like!
addRadioQuestion("How old are you?", ["1-50","50-100"]);
addRadioQuestion("How old are you?", ["1-50","50-100"]);
addRadioQuestion("How old are you?", ["1-50","50-100"]);
addRadioQuestion("How old are you?", ["1-50","50-100"]);
addRadioQuestion("How old are you?", ["1-50","50-100"]);
// Question is a string and options is an array of strings
function addRadioQuestion (question, options) {
if ($.isArray(options) && typeof question === "string") {
// Get the number of previous questions
var qNum = $('.question').length + 1;
// Create a containing div
var questionDiv = $('<div/>').addClass('question');
// Add title to questionDiv
questionDiv.append($('<h3/>').text(qNum + ". " + question));
// Add a radio button for each option
for (var i = 0; i < options.length; i++) {
// Converting from numbers to lettters using ASCII
var optionVal = String.fromCharCode(65 + i);
var option = $('<input/>')
.attr('type', 'radio')
.attr('data-message', options[i])
.attr('name','q' + qNum)
.attr('value', optionVal)
.addClass('correct')
var optionText = $('<label/>')
.text(optionVal + '. ' + options[i])
.append(option);
questionDiv.append(optionText);
}
// Append Submit Button
questionDiv.append($('<input/>')
.addClass('button')
.attr('type', 'submit')
.attr('value', 'Submit')
.on('click', function() {
var theirAnswer = $(this).closest('.question').find('input:checked').attr('data-message');
console.log($(this).closest('.question').find('input:checked').attr('data-message'))
...