2017-11-03 10 views
0

私は基本的な質問をお詫びしますが、私は長い間この作業をしようとしており、値を返すためにこのコードを取得できないようです。

私はそれを動作させようとしていることを認めて恥ずかしいですが、私が見ているStackOverflowの質問の数はどれも、私のコードほどシンプルではなく、どのように私の見た目に近い何か、それは何も警告しません。Javascript:2ユーザーの入力値の平均

  • ユーザ入力2つの番号、
  • は、ボタンをクリック
  • 、それらが入力数の平均を警告される:

    アイデアは、以下です。

私が作成した反復回数に関係なく、アラートはNaNになりました。私は実際にいくつかのアドバイスを使うことができます。前もって感謝します!あなたが浮かぶと、実際に平均関数に渡すために、文字列から、あなたの入力値を変換する必要がある場合があります一見

<html> 
 
\t <head> 
 
\t \t <title> Javascript </title> 
 
\t <body> 
 
\t \t <p> Enter two number for an average below </p> 
 
\t \t <p> Number 1<input type="text" id="userInput1"></input></p> 
 
    \t <p> Number 2<input type="text" id="userInput2"></input></p> 
 
    \t <button id="averageButton"> Calculate</button> 
 
    
 
    <script type="text/javascript"> 
 
    \t function average(a, b) { 
 
    \t \t return ((a + b) /2); 
 
    \t } 
 

 
    \t document.getElementById("averageButton").onclick = function(){ 
 
    \t \t \t var a = document.getElementById("userInput1").value; 
 
\t \t \t var b = document.getElementById("userInput2").value;  \t \t 
 
    \t \t alert(average()); 
 
\t \t } 
 
\t </script> 
 
    </body> 
 

 
</html>

+2

希望の結果を得るには、変数 'a'と' b'を渡す必要があります。意味、 'alert(average(a、b));'関数は2つの変数を期待していますが、何らかの操作を実行しますが、変数を渡すことはないので、 'a'と' b'はその関数の文脈にあります。したがって、あなたのNaN – pshep123

+1

...と 'parseInt'または' parseFloat'に値e – ghybs

答えて

1

数字a、bを関数に渡すことができませんでした。単純な間違いです。

しかし、入力は、あなたがまた、A * 1

を参照してくださいあなたが入力を変更することがあり、コード

<html> 
 
\t <head> 
 
\t \t <title> Javascript </title> 
 
\t <body> 
 
\t \t <p> Enter two number for an average below </p> 
 
\t \t <p> Number 1<input type="text" id="userInput1"></input></p> 
 
    \t <p> Number 2<input type="text" id="userInput2"></input></p> 
 
    \t <button id="averageButton"> Calculate</button> 
 
    
 
    <script type="text/javascript"> 
 
    \t function average(a, b) { 
 
    \t \t // force the input as numbers *1 
 
     return ((a*1 + b*1) /2); 
 
    \t } 
 

 
    \t document.getElementById("averageButton").onclick = function(){ 
 
    \t \t \t var a = document.getElementById("userInput1").value; 
 
\t \t \t var b = document.getElementById("userInput2").value;  \t \t 
 
    \t \t // pass the numbers to the average function! 
 
     alert(average(a,b)); 
 
\t \t } 
 
\t </script> 
 
    </body> 
 

 
</html>

1

0

コメントの番号に変換する必要がある文字列として見られているので、 〜 <input type="number">に変更して、ユーザーが数値以外の値を追加しないようにします。あなただけの、これはあなたがa*1を行うための面白いビジネスに対処する必要はありませんない場合

第二document....valueを返す文字列、

var a = parseFloat(document.getElementById("userInput1").value); 
var b = parseFloat(document.getElementById("userInput2").value); 

として、あなたの入力を解析します。

// force the input as numbers *1 
    return ((a*1 + b*1) /2); 

文字列に数値を掛けるとNaN値が返されるため、このブロックは必須ではありません。

関連する問題