javascript - 将值提交到小数点后 2 位

标签 javascript

我的脚本中的所有内容都完美运行,除了最后一个“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/

相关文章:

javascript - 如何关闭 Accordion 菜单的打开部分?

javascript - 身份验证 - 调用 $http 的 .then() 成功回调而不是错误回调

javascript - switch/if 语句打破了 for 循环

javascript - 在 native react 中隐藏条件 View

javascript - 安装 Nodejitsu

javascript - 如何捕获由特定单词分隔的字符串的不同 x 部分

javascript - UI 路由器 $stateParams 是只读的

javascript - Typescript 中 knex 的默认返回类型是什么?

javascript - 如何让我的 Javascript "Animation"更好地工作?

javascript - React - 使用按钮设置状态并将其作为 Prop 传递