1

我正在创建一个要求用户单击答案(单选按钮)的多项选择题。如果用户在选择答案之前单击检查答案按钮,则会提示他选择答案。这工作正常。但是,如果用户随后选择了错误的答案并单击了检查答案按钮,则会在先前的提示上显示适当的响应。我尝试更改 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 = "";
}
4

3 回答 3

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 = "";      
}
于 2013-01-03T18:02:55.013 回答
0

此行失败,因为incorrect应将其定义为变量或用引号引起来:

document.getElementById("reply_a").innerHTML = "incorrect"; // <-- Should be in quotes

所以你的脚本永远不会执行之后的行。

于 2013-01-03T16:48:51.010 回答
0

正如@brian buck 所说,您的脚本不会在incorrect应该是定义的变量或用引号括起来的语句之后执行(作为字符串执行)。你的脚本默默地失败了,基本上什么都不做(至少,你什么都看不到)。

这里我也推荐几件事:

  • 确保var i在循环中使用以避免范围错误
  • 您的第一次循环检查对我来说似乎有点奇怪:对于每个(假设的)可能未检查的答案,您都会显示相同的错误。这并不重要,但是您的脚本每次都做某事而不是一次。比方说,您可以拥有一个布尔值,当您发现某个答案已在某处检查时切换,并根据该布尔值的值在最后分配您的错误语句。但是,对于这种情况,我的“裸”JS 有点生疏,我完全确信有更好的解决方案!
  • 看来您没有收到脚本失败的通知,我认为您没有使用任何调试器。如果您在 Web 浏览器中执行 JS,则可以使用嵌入式控制台。否则,有很多工具可以帮助你很多。我记得刚开始玩 JS 的时候就掉头发了,因为每次不开心的时候都会沉默……
于 2013-01-03T17:04:23.517 回答