2016-06-22 11 views
0

私は、テキストボックスからの数値に、パラメータを持つ関数を通じて他の値を掛けようとしています。何らかの理由で私は結果として "NaN"を得続けます。 document.write行はテスト目的のためだけに存在しJavaScriptでテキストボックスの値を掛ける

function calculate(a, b, c, d) { 
 
    var num1 = a * b; 
 
    var num2 = num1 * a; 
 
    document.write(num1); 
 
    document.write(num2); 
 
}
<input type="number" id="apple" min="0" value="0"> 
 
<input type="button" onclick="calculate('apple','1.99','2','5')" value="Add to Order">

は、ここでは、コードの骨抜きバージョンです。 num1num2がなぜ "NaN"を返すのか分かりません。また、私はa.valueb.valueを使ってみました。

+3

aがappleの場合は、appleに1.99を掛けようとします。それはどのように数字になるでしょう。また、あなたの数字はすべて文字列です。それらの引用符を削除します。おそらく 'var num1 = document.getElementById(a).value * b'を意味します。あなたの数字の値に価格を掛けます。 – mplungjan

+1

あなたが引数として渡す値は文字列の 'apple'です。文字列に数値を掛けると、NaNだけが得られます。 – Oshadha

+0

あなたのケースでは、リンゴはあなたのケースでは@OshadhaとしてNaN –

答えて

1

あなたは乗算できない文字列「リンゴ」を使用しています。の数をしようとする場合に使用parseFloat機能:

var appleVal = document.getElementById('apple').value; 

または使用「」の代わりに変数:

var appleVal = document.getElementById(a).value; 

ヒントこの場合には必要なもの は、入力フィールド内の値を取得しています文字列:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

0

'apple'はテキストだけで、あなたは合格する必要があります:

document.getElementById('apple').value。あなたのコードで

onclick = "calculate(document.getElementById('apple').value,'1.99','2','5')" 
+0

整数値を表す文字列を渡さず、 '' 1.99''を '' 1.99''などに変更します。 – Liam

+0

解決策を提案する以上に元のコードを変更したくありません。しかし、数値を数値として渡す方が良いと思います。ありがとう@リャム。 –

+0

か、計算で 'document.getElementById(a).value'を使うだけです – mplungjan

0

あなたの間違い

<input type="number" id = "apple" min = "0" value = "0"> 
<input type="button" onclick = "calculate(1.99,2,5)" value = "Add to Order"> 

<script> 
function calculate(b,c,d){ 
var a = document.getElementById("apple").value; 
var num1 = a*b; 
var num2 = num1*a; 
document.write(num1); 
document.write(num2); 
} 
</script> 

、これを試してみてくださいあなたは数字で "りんご" の文字列を乗算している、です。

関連する問題