2016-09-09 26 views
-2

こんにちは私は、ユーザが摂氏度を入力し、プログラムを華氏に変換するようにいくつかのコードを書いています。試してみるとなぜ出力にNaNが表示されるのか分かりません。Javascript出力でNaNが表示されない場合

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    <script type="text/javascript"> 
 
    var degFahren; 
 
    var degCent; 
 
    function input_onchange(degCent) { 
 
     degFahren = parseInt((9/5) * degCent + 32); 
 
     document.form1.output.value = degFahren; 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <form action="" name="form1" method="post"> 
 
     <h3>Type any degrees centigrade and convert it to Fahrenheit.</h3> 
 
     <p> 
 
      Degrees Centigrade: 
 
      <input type="text" name="input" onchange="input_onchange()"> 
 
     </p> 
 
     <p> 
 
      Degrees Fahrenheit: 
 
      <input type="text" name="output" readonly="readonly"> 
 
     </p> 
 
    </form> 
 
    </body> 
 
</html>

+0

を正常に動作する必要があります、あなたは本当に簡単に答えを自分で見つけることができますビットを調整する:に組み込まれたフル機能のデバッガを使用しますあなたのブラウザはあなたの関数の最初のステートメントにブレークポイントを設定し、それを使って変数などを見ます。[JavaScriptタグwiki]のブラウザに組み込まれているさまざまなデバッガに関する詳細へのリンクがあります(http:// stackoverflow .com/tags/javascript/info)。 –

答えて

3

あなたinput_onchangeメソッドに値を渡していないからです。あなたのonchange属性を変更してください。

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    <script type="text/javascript"> 
 
    var degFahren; 
 
    var degCent; 
 
    function input_onchange(degCent) { 
 
     degFahren = parseInt((9/5) * degCent + 32); 
 
     document.form1.output.value = degFahren; 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <form action="" name="form1" method="post"> 
 
     <h3>Type any degrees centigrade and convert it to Fahrenheit.</h3> 
 
     <p> 
 
      Degrees Centigrade: 
 
      <input type="text" name="input" onchange="input_onchange(this.value)"> 
 
     </p> 
 
     <p> 
 
      Degrees Fahrenheit: 
 
      <input type="text" name="output" readonly="readonly"> 
 
     </p> 
 
    </form> 
 
    </body> 
 
</html>

...ここで、thisは、要素自体(input)を指します。

+0

うわー、それは本当に素晴らしいです。ありがとうございました。 – peakersky

0

入力フィールド値を関数に渡す必要があります。あなたのコードを更新しました

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    <script type="text/javascript"> 
 
    var degFahren; 
 
    var degCent; 
 
    function input_onchange(degCent) { 
 
     degFahren = parseInt((9/5) * degCent + 32); 
 
     document.form1.output.value = degFahren; 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <form action="" name="form1" method="post"> 
 
     <h3>Type any degrees centigrade and convert it to Fahrenheit.</h3> 
 
     <p> 
 
      Degrees Centigrade: 
 
      <input type="text" name="input" onchange="input_onchange(this.value)"> 
 
     </p> 
 
     <p> 
 
      Degrees Fahrenheit: 
 
      <input type="text" name="output" readonly="readonly"> 
 
     </p> 
 
    </form> 
 
    </body> 
 
</html>

-1

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    <script type="text/javascript"> 
 
    var degFahren; 
 
    var degCent; 
 
    function input_onchange(degCent) { 
 
     degFahren = parseInt((9/5) * degCent + 32); 
 
     console.log(degFahren); 
 
     document.form1.output.value = degFahren; 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <form action="" name="form1" method="post"> 
 
     <h3>Type any degrees centigrade and convert it to Fahrenheit.</h3> 
 
     <p> 
 
      Degrees Centigrade: 
 
      <input type="text" name="input" onchange="input_onchange(this.value)"> 
 
     </p> 
 
     <p> 
 
      Degrees Fahrenheit: 
 
      <input type="text" name="output" readonly="readonly"> 
 
     </p> 
 
    </form> 
 
    </body> 
 
</html>

問題は、あなたがinput_onchange()方法

-1

に任意のパラメータを渡していなかったでしたあなたは、あなたの関数のパラメータを要求したが、あなたはそれを値を渡すdidntの。 私はあなたのコードが...それは:)今将来的には

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    <script type="text/javascript"> 
 
    var degFahren; 
 
    var degCent; 
 
    function input_onchange() { 
 
     var degCent = document.getElementById("input-centigrade").value; 
 
     degFahren = parseInt((9/5) * degCent + 32); 
 
     document.form1.output.value = degFahren; 
 
    } 
 
    </script> 
 
    </head> 
 
    <body> 
 
    <form action="" name="form1" method="post"> 
 
     <h3>Type any degrees centigrade and convert it to Fahrenheit.</h3> 
 
     <p> 
 
      Degrees Centigrade: 
 
      <input type="text" name="input" id="input-centigrade" onchange="input_onchange()"> 
 
     </p> 
 
     <p> 
 
      Degrees Fahrenheit: 
 
      <input type="text" name="output" readonly="readonly"> 
 
     </p> 
 
    </form> 
 
    </body> 
 
</html>

関連する問題