除了我的最后一个“if”语句,脚本中的所有内容都可以正常运行,它无法执行,我无法终生解决!我知道我在某处出错,但无法弄清楚为什么,我是JavaScript新手。

这是我要在最后一条语句中实现的目标:-

如果“AgeGrade”变量与“Expression”变量匹配,则接受值并将输入的值更改为2个小数点。例如。如果输入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 is not a function的错误。

您该如何解决?

您使用的.value()方法返回一个字符串。但是,方法.toFixed()仅适用于数字(MDN doc)。在调用它之前,请尝试将AgeGrade转换为float:

document.submitrunnertime.AgeGrade.value = parseFloat(AgeGrade).toFixed(2);

09-25 17:04