我是JavaScript新手...以下代码显示正确,即使我提交的值不正确,我也无法让“其他”部分工作:
<!doctype html>
<html>
<head>
<script type="text/javascript">
/*<![CDATA [*/
function myFunction() {
var answer = document.getElementById('answer');
if (answer = 10)
document.getElementById("valid").innerHTML = "Correct!";
else
document.getElementById("valid").innerHTML = "Please, Try Again!";
}
/* ]]> */
</script>
</head>
<body>
<h2>What is 3+7=?</h2>
<form>
<input type="text" id="answer">
<input type="submit" onClick="myFunction(); return false;">
</form>
<div id="valid"></div>
</body>
</html>
答案 0 :(得分:3)
将您的功能更改为
function myFunction() {
var answer = parseInt(document.getElementById('answer').value,10);
if (answer === 10)
document.getElementById("valid").innerHTML = "Correct!";
else
document.getElementById("valid").innerHTML = "Please, Try Again!";
}
它会像魅力一样发挥作用。
解释
id="answer"
的元素是输入。要检索输入的值,您需要.value
赞var answer = document.getElementById('answer').value;
现在,这会将input type="text"
中的值作为字符串返回。
理想情况下,您应该使用int
将其解析为parseInt()
。
赞var answer = parseInt(document.getElementById('answer').value);
这样可以避免类型错误。
最后,您希望compare
这两个值,因此您需要使用==
运算符。
单=
,赋值运算符只会赋值,并且由于赋值成功,因此总是会生成true。
最佳做法是使用与数据类型的严格比较。使用===
运算符。
答案 1 :(得分:1)
您需要使用等于运算符==
而不是赋值运算符=
。
此外,您需要获得答案的值,而不仅仅是元素。
<!doctype html>
<html>
<head>
<script type="text/javascript">
/*<![CDATA [*/
function myFunction() {
var answer = document.getElementById('answer').value;
if (answer == 10)
document.getElementById("valid").innerHTML = "Correct!";
else
document.getElementById("valid").innerHTML = "Please, Try Again!";
}
/* ]]> */
</script>
</head>
<body>
<h2>What is 3+7=?</h2>
<form>
<input type="text" id="answer">
<input type="submit" onClick="myFunction(); return false;">
</form>
<div id="valid"></div>
</body>
</html>
&#13;