在Javascript中乘以文本框值

时间:2016-06-22 09:40:38

标签: javascript html input

我试图通过带参数的函数将文本框中的数字与其他值相乘。出于某种原因,我不断得到“NaN”。

以下是代码的淡化版本:

function calculate(a, b, c, d) {
  var num1 = a * b;
  var num2 = num1 * a;
  document.write(num1);
  document.write(num2); 
}
<input type="number" id="apple" min="0" value="0">
<input type="button" onclick="calculate('apple','1.99','2','5')" value="Add to Order">

document.write行只是用于测试目的。我只是不知道为什么num1num2会回复“NaN”。另外,我尝试a.valueb.value无效。

3 个答案:

答案 0 :(得分:1)

您正在使用String&#39; apple&#39;它不能成倍增加。 在这种情况下,您需要获取输入字段中的值:

var appleVal = document.getElementById('apple').value;

或使用&#39; a&#39;变量而不是:

var appleVal = document.getElementById(a).value;

提示:使用parseFloat函数尝试创建一个字符串:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

答案 1 :(得分:0)

'apple'只是文字,您需要传递:

document.getElementById('apple').value

在您的代码中:

onclick = "calculate(document.getElementById('apple').value,'1.99','2','5')"

答案 2 :(得分:0)

试试这个,

<input type="number" id = "apple" min = "0" value = "0">
<input type="button" onclick = "calculate(1.99,2,5)" value = "Add to Order">

<script>
function calculate(b,c,d){
var a = document.getElementById("apple").value;
var num1 = a*b;
var num2 = num1*a;
document.write(num1);
document.write(num2); 
}
</script>

你的错误是,你正在成倍增加&#34; apple&#34;带数字的字符串。