我的脚本中的所有内容都完美运行,除了最后一个“if”语句,它无法执行,我一生都无法弄清楚!我知道我在某个地方出错了,但就是不知道为什么,我是 JavaScript 新手。
这是我在最后一个声明中试图实现的目标:-
如果“AgeGrade”变量与“Expression”变量匹配,则接受值并将输入的值更改为小数点后两位。例如。如果输入 5.999,则更改为 5.99
这是代码:-
function agegrade() {
var AgeGrade = document.submitrunnertime.AgeGrade.value;
var expression = /^[0-9]*\.?[0-9]*$/
if (AgeGrade == null || AgeGrade == "") {
document.submitrunnertime.AgeGrade.value = "-1";
return true;
} else if (AgeGrade != document.submitrunnertime.AgeGrade.value.match(expression)) {
alert("Error - Need a number!");
return false;
} else if (AgeGrade == document.submitrunnertime.AgeGrade.value.match(expression)) {
document.submitrunnertime.AgeGrade.value = AgeGrade.toFixed(2);
return true;
} else
return false;
}
任何帮助将不胜感激。
最佳答案
您的最后一个 if
语句可能会失败,并出现如下错误:AgeGrade.toFixed 不是函数
。
如何解决这个问题?
您使用的.value()
方法返回一个字符串。然而,方法 .toFixed(
) 仅适用于数字 ( MDN doc )。在调用它之前,尝试将 AgeGrade
转换为 float:
document.submitrunnertime.AgeGrade.value = parseFloat(AgeGrade).toFixed(2);
关于javascript - 将值提交到小数点后 2 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28148828/