【发布时间】:2014-04-14 22:00:22
【问题描述】:
所以,我正在尝试在 Javascript 中创建一个测验,方法是使用 HTML 中文本输入的数字 id,然后运行一个 for 循环,并将输入与答案数组中的答案进行比较。
在 HTML 中:
<form>
China<input type="text" id="0"><br>
France<input type="text" id="1"><br>
Japan<input type="text" id="2"><br>
<input type="button" id="submitt" value="submit">
</form>
在 Javascript 中:
var answers = ["Beijing", "Paris", "Tokyo",];
$("#submitt").click(function() {
var totalYes=0;
function checkAnswers() {
for(var i=0; i<answers.length; i++) {
var userAnswer = document.getElementById(i);
if(userAnswer.value===answers[i]) {
totalYes++;
}
}
}
alert(totalYes);
checkAnswers();
});
但代码没有将变量 totalYes 加 1(问题正确)。我也试过totalYes+=1 和totalYes + 1。 totalYes 的 alert 每次都显示为 0。
但我知道这是唯一不起作用的部分,因为当我将 totalYes 更改为正确和不正确的警报时,它会起作用:
var answers = ["Beijing", "Paris", "Tokyo",];
$("#submitt").click(function() {
var totalYes=0;
function checkAnswers() {
for(var i=0; i<answers.length; i++) {
var userAnswer = document.getElementById(i);
if(userAnswer.value===answers[i]) {
alert("Correct!");
} else {
alert("Incorrect!");
}
}
}
alert(totalYes);
checkAnswers();
});
请帮忙?
【问题讨论】:
-
您的 javascript 代码看起来不正确。函数中的函数?
-
@HeroFTime 为什么不呢?这是一个工作代码。
-
因为每个问题都使用
for循环,所以任何答案都可以放入任何文本框中。示例:巴黎可以放在中国旁边的文本框中,你仍然会得到 1 对。
标签: javascript jquery html