javascript - If 语句不计算值
问题描述
我正在构建一个小测验,其中有一系列循环来计算问题的响应值以及一个基本上是“是/否”的问题。
for 循环正在完成它们的工作并正确存储值。但是,我的是/否问题的检查值不是。我不确定这是否是因为我没有为它定义变量?(我不认为我需要一个。)
function process() {
var okay = 0;
var bad = 0;
var form = document.myForm;
var i = 0;
for (i = 0; i < form.q2.length; i++)
if (form.q2[i].checked) value = form.q2[i].value;
if (value == "1") {
bad++;
}
if (value == "2") {
bad++;
}
if (value == "3") {
okay++;
}
for (i = 0; i < form.q3.length; i++)
if (form.q3[i].checked) value = form.q3[i].value;
if (value == "1") {
bad++;
}
if (value == "2") {
bad++;
}
if (value == "3") {
okay++;
}
var out = "bad";
i = bad;
if (okay > i && document.getElementById("q1").value == 1) {
out = "https://google.com", i = okay;
}
if (okay > i && document.getElementById("q1").value == 0) {
out = "https://www.bing.com", i = bad;
}
location.href = out;
}
function err(msg, url, line) {
location.href = "error.html";
}
<html>
<body>
<h3>Test</h3>
<form name="myForm">
<b>How are you feeling?</b><br>
<input type="radio" name="q1" id="q1" value="0">Bad<br>
<input type="radio" name="q1" id="q1" value="1">Good<br><br>
<b>Question 1</b><br>
<input type="radio" name="q2" value="1">Answer 1<br>
<input type="radio" name="q2" value="2">Answer 2<br>
<input type="radio" name="q2" value="3">Answer 3<br><br>
<b>Question 2</b><br>
<input type="radio" name="q3" value="1">Answer 1<br>
<input type="radio" name="q3" value="2">Answer 2<br>
<input type="radio" name="q3" value="3">Answer 3<br><br>
<input type="button" value="Show Results" onclick="process();">
<br>
<br>
</form>
</body>
</html>
解决方案
如果没有大括号,for
循环只会影响下一条语句。
像这样改变你的for
循环:
for (i = 0; i < form.q2.length; i++) {
if (form.q2[i].checked) {
value = form.q2[i].value;
}
if (value == "1") {
bad++;
}
if (value == "2") {
bad++;
}
if (value == "3") {
okay++;
}
}
推荐阅读
- cygwin - .txt 文件中变量的 Grep 压缩文件
- android-studio - Flutter Android studio 使用所有内存
- amazon-web-services - 在 aws lambda 中重试外部 API 超时
- go - 使用 go 通道使结构线程安全
- sql-server - 如果子查询没有返回行,则返回 0 否则返回子查询的值
- python - 为什么我的 Windows 10 上的 pip 和 pip3 都指向同一个 Python 3.8.1 安装?
- c++ - 如何使用带有聚合初始化的 std::array 定义向量类?
- angular - Angular 和移动 Angular UI 入门
- python - 在 Slurm 中激活虚拟环境时的 Python 输出
- arrays - 如何在 m 排序数组中找到一个元素,其中数组的其余部分为零且未给出 m