【发布时间】:2018-10-18 14:17:26
【问题描述】:
我想,我正在为一些非常简单的事情而苦苦挣扎。 我有一个表单,当用户选择他们的答案时,我想在 DIV 标记内出现一条消息。
我的代码示例在这里:
function check(){
//var display_answer = document.myform.answer.value;
var q1 = document.myform.q1.value;
var q2 = document.myform.q2.value;
if(q1 == "a" && q2 == "a"){
document.getElementById("div").innerHTML= "Green!";
}
if(q1 == "a" && q2 == "b"){
document.getElementById("div").innerHTML = "Red!";
}
if(q1 == "b" && q2 == "a"){
document.getElementById("div").innerHTML = "Yellow!";
}
if(q1 == "b" && q2 == "b"){
document.getElementById("div").innerHTML = "Blue!";
}
}
<!DOCTYPE html>
<html>
<head>
<title>Food Quiz</title>
</head>
<body>
<form name="myform">
Question 1: Question...?
<input type="radio" name="q1" value="a"> Answer A </br>
<input type="radio" name="q1" value="b"> Answer B </br></br>
Question 2: Question...?
<input type="radio" name="q2" value="a"> Answer A </br>
<input type="radio" name="q2" value="b"> Answer B </br></br>
</br>
</br>
</br>
</br>
<input type="button" value="submit" onclick="check()">
</br>
</br>
</form>
<p>
Results:
</p>
</br>
<div style="background-color:lightblue" id="div" name="answer">
</div>
</body>
</html>
事实是,我没有得到任何结果。当用户选择 2 个给定答案的组合(每个问题一个)时,它会得到颜色结果,打印在 id=div 的 DIV 标签上。
对这里出了什么问题有任何想法吗?谢谢。
【问题讨论】:
-
console.log() 是你的朋友
-
当我将您的代码添加到 snipplet 时,对我来说似乎工作正常。该 HTML 中包含的代码在哪里?
-
您的代码有效(对于问题 2 有效),但您的 HTML 有一些无效语法
</br>应该只是<br>和.innerHTML用于获取/设置包含 HTML 的字符串他们。如果字符串没有,请使用.textContent。 -
我们很难帮助您做出“正确”的行为,因为您的代码会讨论“答案 a”和“答案 b”并以颜色进行响应。我们无法理解您在选择各种按钮组合时应该显示什么的逻辑。
-
当你说“我没有得到任何结果”时,你是什么意思?在您的 check() 逻辑中,您的条件仅在为两者都选择了值的情况下处理。如果您没有选择其中一组单选按钮,则该值将为空白 - 但您没有检查空白(例如:
if (q1 == "")),因此不会发生任何事情。
标签: javascript html forms innerhtml