我的目标是检查x并查看它是否小于或等于100,&如果它大于或等于0.如果为真:警告(“输入等级有效”)如果为假:警告(“输入等级无效”)。
我不明白我做错了什么,只是不断返回输入为false的任何数字(例如50,满足两个要求)。
我的代码:
<!DOCTYPE html>
<html lang="en-US">
<title> Bitar_Grade Calculator </title>
<head>
<script>
var x = document.orderForm.stuentgrade.value;
function checkGrade()
{
if (x>=0 && x<=100)
{
alert("Entered grade is valid!");
}
else
{
alert("Entered grade is invalid!");
}
}
</script>
</head>
<body>
<form>
Please enter the students grade:<br>
<input type="number" name="studentgrade"><br>
</form>
<button onclick="checkGrade()"> Enter</button>
</body>
</html>
答案 0 :(得分:1)
您的代码中有一些拼写错误和错误
参见工作职能
function checkGrade() {
var x = document.getElementsByName('studentgrade')[0].value
if (x>=0 && x<=100) {
alert("Entered grade is valid!");
}
else {
alert("Entered grade is invalid!");
}
}
答案 1 :(得分:0)
尝试在执行检查的函数内移动表单字段的读取(并添加更多检查有效值),如下所示;
function checkGrade()
{
var x = parseInt(document.orderForm.studentgrade.value);
if (x && x>=0 && x<=100)
{
alert("Entered grade is valid!");
}
else
{
alert("Entered grade is invalid!");
}
}
然而,注意这不是验证intereg值的完整解决方案,所以有人进入&#34; 3百万&#34;仍将被验证为&#34; 3&#34;
答案 2 :(得分:0)
x超出范围,您没有表单名称“orderForm”,并且您的对象名称中存在拼写错误,stuentform ...
为您的输入提供ID,并执行以下操作:
function checkGrade()
{
var x = document.getElementById('studentgrade').value;
if ( x>=0 && x<=100 )
{
alert("Entered grade is valid!");
}
else
{
alert("Entered grade is invalid!");
}
}