1
Vor diesem Problem stehen (standen) sicher die meisten irgendwann mal, deswegen führe ich es hier nochmal auf.
Mit folgendem Formular soll eine Addition durchgeführt werden:
Die Funktion add() schaut in etwa so aus:
Wenn man dann 1 + 2 berechnen möchte, erhält man als ERgebnis nicht wie erwartet 3, sondern 12.
In JavaScript fungiert das + Zeichen entweder als Operator für die Addition von Zahlen oder zum Zusammenfügen von Strings. In dem oben aufgeführten Fall handelt es sich bei den aus den Input-Feldern extrahierten Variablen um Strings, deswegen werden a und b zusammengefügt und nicht addiert. Man muss also vor der Addition noch eine Typenumwandliung mit parseInt() vornehmen
Mit folgendem Formular soll eine Addition durchgeführt werden:
<form><input type="text" size="3" name="a" id="a" /> + <input type="text" size="3" name="b" id="b" /> = <input type="text" size="3" name="c" id="c" /> <button type="button" onclick="add();">berechnen</button></form>
Die Funktion add() schaut in etwa so aus:
<script type="text/javascript">
function add()
{
a = document.getElementById('a').value;
b = document.getElementById('b').value;
c = a + b;
document.getElementById('c').value = c;
}
</script>
Wenn man dann 1 + 2 berechnen möchte, erhält man als ERgebnis nicht wie erwartet 3, sondern 12.
In JavaScript fungiert das + Zeichen entweder als Operator für die Addition von Zahlen oder zum Zusammenfügen von Strings. In dem oben aufgeführten Fall handelt es sich bei den aus den Input-Feldern extrahierten Variablen um Strings, deswegen werden a und b zusammengefügt und nicht addiert. Man muss also vor der Addition noch eine Typenumwandliung mit parseInt() vornehmen
<script type="text/javascript">
function add()
{
a = parseInt(document.getElementById('a').value);
b = parseInt(document.getElementById('b').value);
c = a + b;
document.getElementById('c').value = c;
}
</script>