在Javascript中简单添加

时间:2015-08-04 06:49:44

标签: javascript

它在Javascript中的简单添加。但我不明白为什么结果是1510而不是15 + 10。

<script>
function doCalc(){
    with (document.calc){
    sum1.value = orderin.value+ ordercheck.value
    }
}
</script>
<form method="post" name="calc" enctype="multipart/form-data">

    <input checked="checked" value="0" name="orderin" type="RADIO" onChange="doCalc()">+0
    <input value="15" name="orderin" type="RADIO" onChange="doCalc()">+15
    <br><br>
    <input id="ordercheck1" checked="checked" value="0" name="ordercheck" type="RADIO" onChange="doCalc()">+0
    <input id="ordercheck2" value="10" name="ordercheck" type="RADIO" onChange="doCalc()">+10
    <br><br>
    TOTAL: <input size="7" value="0" name="sum1" readonly="readonly" border="0">
    <input onClick="doCalc()" value="TOTAL" name="button" type="button">
</form>

3 个答案:

答案 0 :(得分:1)

Javascript变量可以包含每种类型(字符串和数字)。您正在尝试添加两个字符串。试试这个:

sum1.value = parseInt(orderin.value,10) + parseInt(ordercheck.value,10)

parseInt会尝试将字符串转换为数字。 10表示您要将数字转换为十进制数。有关parseInt W3SchoolsMDN的更多信息。

答案 1 :(得分:0)

默认情况下,输入的输出是javascript中的字符串/文字,因此它变得连贯。您需要将其解析为int。

 sum1.value = parseInt(orderin.value)+ parseInt(ordercheck.value)

答案 2 :(得分:0)

当您的一个(或两个)变量被视为字符串时,您正尝试+。当你不确定时,一定要先保持parseInt(变量)! 通常,从DOM中选择的值(来自文本字段的用户输入等)被视为字符串。

// these are ints
var a = 5;
var b = 10;
var c = a + b; // c is 15

// notice the ""-notation, these are strings
var x = "5"; 
var y = "10";
var z = x + y; // z is 510

// just do this to fix it:
var z = parseInt(x) + parseInt(y) // z is 15

在你的情况下:

sum1.value = parseInt(orderin.value) + parseInt(ordercheck.value)