它在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>
答案 0 :(得分:1)
Javascript变量可以包含每种类型(字符串和数字)。您正在尝试添加两个字符串。试试这个:
sum1.value = parseInt(orderin.value,10) + parseInt(ordercheck.value,10)
parseInt会尝试将字符串转换为数字。 10表示您要将数字转换为十进制数。有关parseInt W3Schools或MDN的更多信息。
答案 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)