【问题标题】:Retrieving number value from input instead of object从输入而不是对象中检索数值
【发布时间】:2017-10-17 13:50:00
【问题描述】:

我正在尝试编写一个小程序来确定两个数字之间的公因数。不过,我在获取数字时遇到问题。这是我的 HTML 代码:

<p>Please input two numbers to find the common factors between them.</p>
 First number:<input type="number" id="firstNumber"></br>
 Second number:<input type="number" id="secondNumber"></br>
<button onclick="commonFactors(document.getElementById('firstNumber'), 
 document.getElementById('secondNumber'))">Submit</button>

但是,控制台没有返回数字,而是返回以下内容:

"<input type='number' id='firstNumber'>" "<input type='number' 
  id='secondNumber'>"

带引号。你能告诉我我做错了什么吗?

不确定是否重要,但这是 JS:

function commonFactors(num1, num2) {
  console.log(num1, num2);
  var counter=Math.min(num1, num2);
  var factors=[];
  var k=0;  
  for (i=1; i<counter; i++) {
    if (num1%i==0) {
      if (num2%i==0) {
        factors[k]=i;
      }
    }
    k+=1;
  }
}; 

【问题讨论】:

    标签: javascript html input numbers


    【解决方案1】:

    因为document.getElementById('firstNumber') 是指输入,请使用+document.getElementById('firstNumber').value 注意+,因为您从输入中获得的值是string 类型,所以我们使用+ 将它们转换为数字

    注意:您可以使用函数而不是 +,对于整数称为 parseInt(),对于浮点数称为 parseFloat()

    结果是

        <button onclick="commonFactors(parseInt(document.getElementById('firstNumber').value), 
     parseInt(document.getElementById('secondNumbe').value)">Submit</button>
    

    【讨论】:

    • 感谢你们!它需要 parseInt 和 .value 的组合才能工作。
    • 是的,如第一段所述,您将需要它们两个。我忘记在示例中添加 .value
    【解决方案2】:

    您想获取输入的值,而不是输入本身:

    document.getElementById('firstNumber').value

    【讨论】:

    • 谢谢!见上面的评论。
    猜你喜欢
    • 2015-02-18
    • 2021-10-04
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多