我正在进行测验。
有些问题有多个答案。
我的HTML是:
<div>Which problems equal 4?</div>
<input type="checkbox" id="qid" class="checks" data-correct="yes">2 + 2<br />
<input type="checkbox" id="qid" class="checks" data-correct="no">2 - 2<br />
<input type="checkbox" id="qid" class="checks" data-correct="yes">2 * 2<br />
如果检查的答案错误或正确,我想提醒。
目前,我的Javascript看起来像这样:
function checkMsResults(){
var result = $('input[name="qid"]:checked').attr("data-correct");
if(result == '1'){
result = "Answer is Correct";
}
else if(result == '0'){
result = "Answer is Not Correct";
}
else{
result = "Please make a selection";
}
alert(result + ".");
}
这将仅提醒一个选择。 有人可以教我如何循环每个,所以我可以提醒多个选择吗?
答案 0 :(得分:3)
您有三个具有相同ID的输入,您不能这样做,ID必须是唯一的。
function checkMsResults() {
if ($('input[name="quid"]:checked').length === 0) {
var result = "Please make a selection";
alert(result);
return;
}
$('input[name="quid"]:checked').each(function() {
var result;
if (this.getAttribute("data-correct") === "yes") {
result = "Answer is Correct";
} else {
result = "Answer is Not Correct"
}
alert(result);
});
}
答案 1 :(得分:1)
清理原件。这是一个jsfiddle,它可以得到每个答案,然后将所有答案都放到一个数组中;你可以用它做任何你想做的事...... https://jsfiddle.net/r2xc22Ld/1/
function checkMsResults(){
var result = "";
var answers = [];
$('input[name="qid"]:checked').each(function() {
answers.push($(this).attr('data-correct'));
});
//console.log(answers);
for(var i = 0; i< answers.length; i++){
result += 'Question '+i+': ' + answers[i] +'\n';
}
if(result==""){
alert('make a selection...');
}else{
alert(result);
}