当我在选择了第一个单选按钮的情况下运行此功能时,系统会输出正确的值30.但是,一旦我尝试对此值应用某些更改(例如,通过将此值加1,则为30)系统结果显示301。
当选择值为25的单选按钮时,我遇到同样的问题。一旦我尝试进行数学更改,系统会将此变量视为250。
我在这里缺少什么想法?提前谢谢。
<script>
function f1()
{
...
var Ergebnis_RP = document.getElementsByName("Ergebnis_RP");
if(Ergebnis_RP[0].checked)
{ var Erg = Ergebnis_RP[0].value;}
else if(Ergebnis_RP[1].checked)
{ var Erg = Ergebnis_RP[1].value;}
...
document.write(Erg);
var Spielwert = Erg + 1;
document.write(Spielwert);
}
</script>
<body>
<input type="radio" name="Ergebnis_RP" value=30>Verl. Schwarz
<input type="radio" name="Ergebnis_RP" value=25>Verl. U3
</body>
答案 0 :(得分:0)
文本框的值始终是字符串。你需要将它强制转换为数字。最简单的方法是:
+Ergebnis_RP[0].value
每次从文本框中读取数字时,请务必执行此操作。
对该问题的进一步解释:
组合两个字符串时,它们会像"ab" + "cd" -> "abcd"
一样连接。
但是当你组合不同的类型时,第二个被强制与第一个相同。 "ab" + 1 -> "ab" + "1" -> "ab1"
。
您的代码需要一个字符串并添加一个数字。字符串恰好是数字,但这并不重要。 "12" + 3 -> "12" + "3" -> "123"
。
要解决此问题,请先从数字开始,然后添加字符串。 0 + "12" -> 0 + 12 -> 12
。
作为一种快捷方式,+
运算符就像-
运算符一样对数字起作用。考虑数字-5
。 -
是否定的。 +
是另一个一元运算符,它接受一个数字并返回相同的数字。听起来毫无用处,但它有它的位置。 +"12" -> 12
。