简单的javascript数学不起作用

时间:2015-04-30 00:31:49

标签: javascript math

我觉得我再次成为新手。我以为我早就遇到了这些问题。下面是一个简单的脚本,其中有两个功能都不起作用。我错过了什么任何帮助表示赞赏。

<div id="calcArea">
<div>
<input type="number" id="beerPerc" value="50" onkeyup="calculator2()"> &nbsp; % of Beer Drinkers<br>
<input type="number" id="winePerc" value="30" onkeyup="calculator2()"> &nbsp; % of Wine Drinkers<br>
<input type="number" id="liquorPerc" onkeyup="calculator2()"> &nbsp; % of Liquor Drinkers<br>
</div>

<script>
function calculator() {
    var bee = document.getElementById("beerPerc").value;
    var win = document.getElementById("winePerc").value;
    var liq = 100-(bee + win);
    document.getElementById("liquorPerc").value = liq;
}

function calculator2() {
    document.getElementById("liquorPerc").value = parseInt(100 - (document.getElementById("beerPerc").value + document.getElementById("winePerc").value))
}
</script>

1 个答案:

答案 0 :(得分:2)

两件事:

  1. 案件意义重大。如果您声明变量bee,则无法使用Bee进行阅读。

  2. .value始终是一个字符串。您需要将字符串转换为数字:

    var bee = Number(document.getElementById("beerPerc").value);
    
  3. 如果你不这样做,+将执行字符串连接,而不是添加。

    您不需要就数字计算的结果致电parseInt(),这总是一个数字。

    function calculator2() {
        document.getElementById("liquorPerc").value = 100 - (parseInt(document.getElementById("beerPerc").value, 10) + parseInt(document.getElementById("winePerc").value, 10)))
    }