2016-09-09 4 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

В будущем, вы можете найти ответ самостоятельно очень легко: Используйте полнофункциональный отладчик, встроенный в ваш браузер установить точку останова в первом операторе в вашей функции, затем использовать его, чтобы посмотреть на переменные и т. д. Есть ссылки на подробности о различных отладчиках, встроенных в браузеры в [wiki JavaScript] (http: // stackoverflow .com/теги/JavaScript/данные). –

ответ

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

Вы запросили параметр в вашей функции, но не прошел его значение. я настроил свой код немного ... он должен работать нормально сейчас :)

<!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>

Смежные вопросы