Well to do it, you have to make some few changes to your HTML first:
- Add
class
and value
attributes to your checkbox elements.
- Then use the following Javascript function to get checked values from
your answers:
function toShow(){
var checkedValues=[];
var answers=document.getElementsByClassName("answers");
for(var i=0;i<answers.length;i++){
if(answers[i].checked){
checkedValues.push(answers[i].value);
}
}
alert(checkedValues);
}
<div id="qn1">1. What are JavaScript types?</div>
<div id="ans">
<input type="checkbox" class="answers" id="n1" value="Number">Number</input><br/>
<input type="checkbox" class="answers" id="B1" value="Boolean">Boolean</input><br/>
<input type="checkbox" class="answers" id="F1" value="Function">Function</input><br/>
<input type="checkbox" class="answers" id="u1" value="Undefined">Undefined</input><br/>
<input type="checkbox" class="answers" id="a1" value="All the above">All the above</input><br/><br/>
<button onclick="toCheck()">Check</button>
<button onclick="toShow()">Show Answer</button>
</div>
EDIT:
If you want to select only one answer at once, here's a function that uses jQuery inspired from this answer should do it :
$("input:checkbox").on('click', function() {
var $box = $(this);
if ($box.is(":checked")) {
var group = "input:checkbox[class='" + $box.attr("class") + "']";
$(group).prop("checked", false);
$box.prop("checked", true);
} else {
$box.prop("checked", false);
}
alert($box.val());
});
Try this DEMO.
Boolean
Function
Undefined
All the above