表单数据中的Javascript计算返回NaN

时间:2017-01-08 22:21:48

标签: javascript jquery html

我对JS很新,我认为在我使用Javascript进行算术的部分中,我的代码存在问题。如果有人能告诉我出错的地方,我将非常感激!目前,除了单击计算按钮时返回NaN,一切正常。

HTML:

<form>
AGE:<br><input id="Age" data-wrapper-class="inputBox" type="text" name="Age"><br>
</form>

<form>
HEIGHT (FEET):<br><input id="Feet" data-wrapper-class="inputBox" type="text" name="Feet"><br>
</form>

<form>
HEIGHT (INCHES):<br><input id="Inches" data-wrapper-class="inputBox" type="text" name="Inches"><br>
</form>

<form>
WEIGHT (POUNDS):<input id="Pounds" data-wrapper-class="inputBox" type="text" name="Pounds"><br>
</form>

<button id="calcButton" class="ui-btn ui-btn-b">Calculate BMR</button>
</div>

<div id="resultsInfo">
<p id="results"></p>
</div>

Javascript / jQuery:

$("#calcButton").click(function() {
var age = document.forms["Age"]; 
var feet = document.forms["Feet"];
var inches = document.forms["Inches"];
var wip = document.forms["Pounds"];
var feetInches = feet * 12;
var heightInches = feetInches + inches;
var weightMen = 6.23 * wip;
var heightMen = 12.7 * heightInches;
var ageMen = 6.8 * age;
var one = 66 + weightMen;
var two = one + heightMen;
var menBMR = two - ageMen;
$("#Calculator").hide();
parseFloat(document.getElementById("results").innerHTML = menBMR);
$("#resultsInfo").show();
});

1 个答案:

答案 0 :(得分:2)

正如Jaromanda所提到的,您需要确保这些值实际上是Number值。一旦它们是数字类型,那么你可以对它们进行算术运算。这就是为什么这很重要:

var str = "12"  // Number value
var num = 12  // String value
console.log(str * 2)  // 1212
console.log(num * 2)  // 24

在您的代码示例中,您看起来好像使用了收集type="text"的输入,这意味着您从中获取的值将为您提供String值。您可以使用parseIntparseFloat将其转换为数字,或者您可以将HTML输入类型更改为type="number"