[英]Javascript: Convert a text box number entry into a corresponding letter grade
到目前为止,这是我所拥有的,但我不能让它显示结果。 我希望能够输入诸如“75”之类的数字,单击按钮,然后在底部文本框中输入“C”,依此类推其他数字。 到目前为止我的代码看起来像这样:
当我点击“点击这里”时,我不希望答案是单独的,我希望它显示在只读文本框中。
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
var score = document.getElementById("score").value;
if (90 <= score)
{document.write ("A");}
else if (80 <= score && score < 90)
{document.write ("B");}
else if (70 <= score && score < 80)
{document.write ("C");}
else if (60 <= score && score < 70)
{document.write ("D");}
else
{document.write ("E");}
}
}
</script>
</head>
<body>
Grade % <input type="number" id="score" value=""><br>
<p><button onclick="myFunction()">CLICK HERE</button></p>
Letter Grade <input type="text" id="letter" readonly><br><br>
</body>
</html>
几个建议和问题。
parseInt
将其转换为数字。 var score = parseInt(document.getElementById(“score”)。value,10); document.write
是一种不好的做法 // Select the element and bind the click event to the button document.querySelector('#btn').addEventListener('click', function() { // convert to integer before comparision var score = parseInt(document.getElementById("score").value, 10); var letterInput = document.getElementById("letter"); var letter = "E"; if (90 <= score) { letter = "A"; } else if (80 <= score && score < 90) { letter = "B"; } else if (70 <= score && score < 80) { letter = "C"; } else if (60 <= score && score < 70) { letter = "D"; } letterInput.value = letter; });
Grade % <input type="number" id="score" value=""> <br> <p> <button id="btn">CLICK HERE</button> </p> Letter Grade <input type="text" id="letter" readonly> <br> <br>
document.write()
输出该点的文本。 你想要做的是用document.getElementById('score').value = SOME_VAL
替换那些document.getElementById('score').value = SOME_VAL
,其中SOME_VAL
是你的字母等级。
您必须获取input元素并在其中设置值。 不在页面中。 document.write的目标是整个html而不是元素。 为了在input元素中显示结果,请使用document.getElementById(“element”)并使用.value()设置该元素的值
function myFunction() { var score = document.getElementById("score").value; if (90 <= score) { document.getElementById("letter").value = 'A'; } else if (80 <= score && score < 90) { document.getElementById("letter").value = 'B'; } else if (70 <= score && score < 80) { document.getElementById("letter").value = 'C'; } else if (60 <= score && score < 70) { document.getElementById("letter").value = 'D'; } else { document.getElementById("letter").value = 'E'; } }
Grade % <input type="number" id="score" value=""><br> <p><button onclick="myFunction()">CLICK HERE</button></p> Letter Grade <input type="text" id="letter" readonly><br><br>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.