. getelementbyid().价值不起作用

document.getElementById().value not working

本文关键字:不起作用 getelementbyid      更新时间:2023-09-26

我想自动计算价格+佣金(12%)并自动输入结果。例如:100美元+ 12%的佣金= 112美元。问题是这里我的结果是10012。

哪里写错了我的代码:

<input type="value" class="form-control" id="input">
<input type="value" id="output" onkeyup="calc();"/>
<input id="finalprice" onkeyup="calc();"/>
<script>
function calc() {
  var a = document.getElementById("input").value;
  var b = (12/100) ;
  var c = b * 100;
  var e = a + c;
  var f = a + e;
  document.getElementById("output").value = c;
  document.getElementById("finalprice").value = f;
}
</script>

您得到10012,因为值连接在一起作为一个字符串。您需要解析输入的值,以便进行计算。我重写了代码以简化它。因此,在第一个文本框中输入金额(#input),在第二个文本框中输入汇率(#percentage),就会在第三个文本框中输入总金额(#finalprice)。

function calc() {
  var amount = parseFloat(document.getElementById("input").value);
  var rate = parseFloat(document.getElementById("percentage").value)/100;
  var calculatedValue = amount * rate
  document.getElementById("finalprice").value = amount + calculatedValue;
}
<input type="text" class="form-control" id="input">
<input type="text" id="percentage" onkeyup="calc();"/>
<input type = "text" id="finalprice"/>

试试这个:

var a = +document.getElementById("input").value;

单个+操作符

a的值为字符串,以实现以下选项

的预期用途
var a= document.getElementById('input').value;   
a=a*1;// multiplying with 1 makes variable value number