【发布时间】:2019-09-30 10:49:39
【问题描述】:
我已经弄清楚了我的大部分代码,但现在在如何成功验证的语法上(又一次)遇到了问题:
-它只需要允许输入的数字 - 检查有效输入,不允许用户输入会返回 NaN 的值
- 需要四舍五入到整数(即79.8突然变成'80',41.2变成40后才算出什么等级)
我想可能会使用 math.round,但我已经玩了几个小时了,无法弄清楚我在哪里添加了“math.round”,因为它是一种形式,我很讨厌这个。 :(
<label>Homework Assignments</label>
<input type="number" id="hmwk" size=2 value="hmwk" oninput="validate(this)">
<br>
<label>Midterm Exam</label>
<input type="number" id="mdtm" size=2 value="mdtm" oninput="validate(this)">
<br>
<label>Final Exam</label>
<input type="number" id="final" size=2 value="final" oninput="validate(this)">
<br>
<label>Participation Points</label>
<input type="number" id="prtc" size=2 value="prtc" oninput="validate(this)">
<br>
<br>
<input type="button" value="GPA" onclick="grade()" oninput="validate(this)">
<textarea id="output" style="height: 50px; width: 100%;" disabled></textarea>
<script type="text/javascript">
function grade() {
var grd1 = parseFloat(document.getElementById('hmwk').value * 0.5);
var grd2 = parseFloat(document.getElementById('mdtm').value * 0.2);
var grd3 = parseFloat(document.getElementById('final').value * 0.2);
var grd4 = parseFloat(document.getElementById('prtc').value * 0.1);
var total = grd1 + grd2 + grd3 + grd4;
var display = document.getElementById('output');
var msg = '';
var grade = 0;
switch (true) {
case (total >= 90 && total <= 100):
grade = "you got an A, wow I'm impressed!";
break;
case (total >= 80 && total <= 89):
grade = "you got a B- pretty darn good!";
break;
case (total >= 70 && total <= 79):
grade = "you got a C... but an A for effort!";
break;
case (total >= 60 && total <= 69):
grade = "unfortunately you got a D and you have to retake the course.";
break;
case (total >= 0 && total <= 59):
grade = "F.\r\nSorry you have to retake this course, try studying more next time.";
break;
default:
grade = "F";
break;
}
msg = "Your grade point average is " + total + " percent, which means you get an " + grade;
display.innerHTML = 'Your Final Grade Is: ' + total + "\r\n" + msg;
}
</script>
当用户在每个空白处输入他们的成绩时,我不希望文本字段表单框允许他们输入超过 2 个数字或 2 个带两位小数的数字。他们可以输入的示例:
23.56(两个数字,另外两个用小数分隔)
或
87.9(两个数字,带小数分隔符和另一个数字)
或
90
或
100(最大)
不允许:
995(没有小数的三位数字通过 100% 总数,因为这是一个等级)
76.999
或
86.433254647447474(总体而言,有太多数字超过小数点)
101(不允许超过 100)
或
任何字母
或
小数以外的任何字符
【问题讨论】:
标签: javascript jquery