繁体   English   中英

为什么我没有得到正确的价值?

[英]Why am I not getting the right value?

<html>
<head><title>One rep max</title>
<script type="text/javascript">

    function calculateOneRepMax(){
        var p = document.getElementById("button");

        p.onclick = showAlert;
    }
    function showAlert(){
        var weight = document.getElementById("weight").value;
        var reps = document.getElementById("reps").value;
        var orm = ((weight * reps )/ 30) + weight;
        alert(orm);
    }
</script> 
</head>
<body onload="calculateOneRepMax()">
<form>
  Weight: <input type="text" id="weight"/><br>
  Reps: <input type="text" id="reps" /><br>
  <input id="button" type="button" value="Calculate" onClick="calculateOneRepMax()" />
</form> 
</body>
</html>

我想使用此公式为一个举重最多代表一个计算器。
(Weight * Reps)/30 + Weight

问题在于脚本未在(Weight * Reps)/30之后添加Weight。
怎么了

在javascript中,当您将字符串添加到数字时,javascript不会执行算术加法。 相反,它将两个值连接在一起成为一个新的字符串。

修复代码的一种方法是使用parseInt确保体重和次数是数字:

    var weight = parseInt(document.getElementById("weight").value,10);
    var reps = parseInt(document.getElementById("reps").value,10);

还有其他方法可以做同样的事情。

编辑:

您的代码还有另一个问题。 computeOneRepMax是不必要的,并且比应做的更多。 您最好放弃它。 从正文中删除onload并将onclick更改为showAlert():

<html>
<head><title>One rep max</title>
<script type="text/javascript">
    function showAlert(){
        var weight = document.getElementById("weight").value;
        var reps = document.getElementById("reps").value;
        var orm = ((weight * reps )/ 30) + weight;
        alert(orm);
    }
</script> 
</head>
<body>
<form>
  Weight: <input type="text" id="weight"/><br>
  Reps: <input type="text" id="reps" /><br>
  <input id="button" type="button" value="Calculate" onClick="showAlert()" />
</form> 
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM