JavaScript测验不起作用

时间:2013-12-18 23:23:36

标签: javascript forms

我正在尝试做一点小测验。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quiz</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
</head>
<body>
<div id="question"></div>
<form>
<input type="text" id="answer">
<button onClick="check()">Check</button>
</form>
<script>
var spanish = new Array("Hola", "Sí", "No");
var english = new Array("Hello", "Yes", "No");
var x = Math.floor(Math.random()*3);

document.getElementById("question").innerHTML = english[x];

var attempt = document.getElementById("answer");
var correct = spanish[x];

function check(){
  if(attempt == correct){
    alert("Correct");
  }else{
    alert("Fail");
  };
};
</script>

</body>
</html>

无论我是否正确,它都会返回失败。你知道怎么解决这个问题吗?我环顾四周但却无法弄清楚出了什么问题。感谢。

1 个答案:

答案 0 :(得分:2)

您需要在点击按钮时检查是否有尝试。您当前正在检查页面加载(因此它总是一个空字符串,导致correct == attempt为false)。此外,您需要获取值,而不是元素。

所以,将你的功能改为:

function check() {
    var attempt = document.getElementById("answer").value;
    if (attempt == correct) {
        alert("Correct");
    } else {
        alert("Fail");
    };
};

见这里:http://jsfiddle.net/ykZHa/