我正在创建一个多项选择题,要求用户点击答案(单选按钮)。如果用户在选择答案之前单击了答复答案按钮,则会提示他选择答案。这很好用。但是,如果用户随后选择了错误答案并单击了“检查答案”按钮,则会在上一个提示上显示相应的响应。我尝试更改getElementById以提示显示“”,但它不起作用。任何帮助将不胜感激。
for (i = 0; i < len; i++) {
if (document.Questions.Q_ans[i].checked == false) {
document.getElementById("reply_b").innerHTML = "Select answer before continuing.";
}
}
if (document.getElementById('answer_b').checked || document.getElementById('answer_c').checked) {
document.getElementById("reply_a").innerHTML = incorrect;
document.getElementById("reply_b").innerHTML = "";
}
答案 0 :(得分:0)
此行失败,因为incorrect
应该被定义为变量,或者它应该用引号括起来:
document.getElementById("reply_a").innerHTML = "incorrect"; // <-- Should be in quotes
所以你的脚本永远不会执行该行。
答案 1 :(得分:0)
正如@brian buck所说,你的脚本不会在incorrect
语句之后执行,该语句应该是一个已定义的变量或用引号括起来(以字符串形式执行)。你的脚本默默地失败了,基本上什么也没做(至少,你看不到任何东西)。
我还建议在这里做一些事情:
var i
以避免范围错误答案 2 :(得分:0)
使用Jquery,将所有“document.getElementById('yourId')”替换为“$('#yourid')”
并且您必须为您的循环初始化var len
。
JS:
for (var i = 0; i < len; i++) {
if (document.Questions.Q_ans[i].checked == false) {
$("#reply_b").innerHTML = "Select answer before continuing.";
}
}
if ($('#answer_b').checked || $('#answer_c').checked) {
$("#reply_a").innerHTML = incorrect;
$("#reply_b").innerHTML = "";
}