2017-01-08 11 views
0

私はかなりJSに新しく、私は算術演算にJavaScriptを使用している部分に自分のコードに問題があると思います。誰かが私がどこに間違っていたかを私に見せてもらえれば、とても感謝しています!現在のところ、計算ボタンがクリックされたときにNaNを返す以外はすべて動作します。フォームデータからの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(); 
}); 
+2

要素 '.value' ...を取得し、それらが' Number'であることを確認する必要があります –

+1

各 ' '要素をそれ自身の'

'に入れる理由はありません。実際それは奇妙です。 – Pointy

+0

ありがとう、私はこのすべてにかなり新しいです、私はあなたの提案をお試しください。 –

答えて

2

Jaromandaが述べたように、あなたは値が実際にNumber値であることを確認する必要があります。一度数値型になると、算術演算を行うことができます。これは重要な理由はここにあります:あなたはそれはあなたの文字列値を与えるだろうから、あなたが得る値を意味しているtype="text"を集めている入力を使用しているかのようにコードの例では

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

は、それが見えます。 parseIntまたはparseFloatを使用して数値に変換するか、HTML入力タイプをtype="number"に変更することができます。

+1

彼らが失うスヌーズ、私はあなたのベストを投票すると思います。時間をいただきありがとうございます! –

関連する問題