将数据从输入表单存储到var for javascript函数

时间:2016-05-26 02:20:26

标签: javascript html

您好我正在学习javascript。 所以我想创建一个将华氏温度转换为摄氏温度的函数,但输入存储在变量中,然后用alert(result);显示结果

这里是我的基本理解代码



var f = document.getElementById("fa").value;

function toCelsius(f) {
  var result = (5/9) * (f-32);
  alert (result);
}

<p>calls a function to convert from Fahrenheit to Celsius:</p>
<form>
  input fahrenheit :<input type="number" id="fa">
  <button onclick="toCelsius(f)">submit</button>
</form>
&#13;
&#13;
&#13;

每当我输入一个数字时,结果都不会改变,我认为我在.value或.innerHTML中错了吗?

4 个答案:

答案 0 :(得分:1)

&#13;
&#13;
<p>Calls a function to convert from Fahrenheit to Celsius:</p>
<form>
input fahrenheit :<input type="number" id="fa"/>
<button onclick="toCelsius()">submit</button>
</form>

<script>
  function toCelsius() {
    var f = document.getElementById("fa").value;
    var result = (5/9) * (f-32);
    alert (result);
  }

</script>
&#13;
&#13;
&#13;

将值检查放在函数内,不带参数。

答案 1 :(得分:0)

您需要在数学表达式中使用变量“f”作为数字。 JavaScript会为你打字,但是既然你正在学习,那么很高兴知道有办法强迫它。

  function toCelsius() 
  {

       var f = parseFloat(document.getElementById("fa").value);
       var result = (5/9) * (f-32);
       alert (result);
  }

  function toCelsius() 
  {
       var result = (5/9) * (parseFloat(document.getElementById("fa").value) - 32);
       alert (result);
  }

  function toCelsius() 
  {
       alert ((5/9) * (parseFloat(document.getElementById("fa").value) - 32));
  }

======

  <button onclick="toCelsius(f)">submit</button>

这不起作用,因为此时f不在播放中。 调用你的处理程序,然后获取你需要的DOM值。

答案 2 :(得分:0)

你的问题在这里:

var f = document.getElementById("fa").value;

这将创建一个全局变量,其中包含ID为 fa 的元素的当前值。之后它不会改变,因此无论您在表单中输入什么内容,您都将获得相同的值。

单击按钮时需要获取输入值,所以:

  1. 将按钮更改为键入按钮,使其不提交表单
  2. 将当前值传递给函数,以使其获得正确的值
  3. E.g。

    function toCelsius(n) {
      var result = (5/9) * (n-32);
      alert (result);
    }
    <p>calls a function to convert from Fahrenheit to Celsius:</p>
    <form>
      input fahrenheit :<input type="number" id="fa" name="fa">
      <button type="button" onclick="toCelsius(this.form.fa.value)">Calc value</button>
    </form>

    请注意,输入必须具有成功的名称(即,其值与表单一起提交)。如果您希望提交表单,请将按钮类型设置为提交(或删除类型,因为提交是默认设置)。

答案 3 :(得分:-1)

你继续使用

    var f = document.getElementById("fa").value;

您需要将f转换为整数或浮点格式,因此如果您只想要整数,请使用ParseInt;如果需要整数和分数,请使用ParseFloat。