NaN Problem

warcraft9105

Erfahrenes Mitglied
hallo habe ein NaN problem... ich will ein kleines Dartprogramm schreiben.

Ich habe ein Eingabefeld wo die noch zu werfenden Punkte stehen, eines wo die aktuell geworfenen Punkte eingetragen werden können und einen <span> bereich wo das Ergebnis aus "noch zu werfenden Punkte" - "aktuell geworfene Punkte" erscheint.

Er soll mir einfach die restlichen Punkte ausspucken (während der eingabe) und wenn ich auf den Button klicke soll er mir das feld mit den aktuell geworfenen Punkten löschen und die restlichen Punkte, die ich vorher als Ergebnis bekommen habe in das feld der "noch zu werfenden Punkte" laden.

Das mit dem ausrechnen geht schon aber wenn er mir das Ergebnis vom <span> Bereich in das Eingabefeld "noch zu werfende Punkte" laden soll zeigt er mir darin "NaN" an und ich weiß nicht warum.

Soweit bin ich:
Script:

<script type="text/javascript">

function easy_game (i)
{
var wert1 = document.getElementById('aktuell' + i).value;
var wert2 = document.getElementById('geworfen' + i).value;
var erg1 = wert1 * 1;
var erg2 = wert2 * 1;
var summe = erg1 - erg2;
document.getElementById('ergebnis' + i).innerHTML = summe;
}

function weiter (i)
{
var wert1 = document.getElementById('ergebnis' + i).value;
var erg1 = wert1 * 1;
document.getElementById('aktuell' + i).value = erg1; document.getElementById('geworfen' + i).value = "";
}
</script>

Formular:

<p>Aktuelle Punkte:
<input type="text" id="aktuell1" value="<? echo $punkte;?>"></p>
<p>Gerade geworfene Punkte:
<input type="text" id="geworfen1" onKeyUp="easy_game(1)"></p>
<p>Restliche Punkte:<span id="ergebnis1"></span></p>
<p><input type="button" name="weiter" value="Weiter" onClick="weiter(1)"></p>

Das echo $punkte; soll er nur beim Anfang als Value verwenden. Den Wert bekomme ich aus einem vorhergehenden Formular wo mann die Startpunkte (301 oder 501), Spielernamen eingeben kann.

Hoffe mir kann jemand helfen
 
Code:
function weiter (i)
{
var wert1 = document.getElementById('ergebnis' + i).value;
//.....

...dieses Element ist ein <span> und hat als solcher kein value-Attribut, weswegen dir das "undefined" liefert und das Rechenergebnis folglich
Code:
'undefined' *1=NaN
:-)
Greife stattdessen auf sein innerHTML zu.
 
Mal so grob gesagt:
value nimmt man bei Formularelementen(wobei value nicht immer das sein muss, was man sieht...z.B. bei <option>), und innerHTML bei Sachen, die kein Formularelement sind.

Ist zwar nicht unbedingt das Patentrezept und in jedem Fall wie gewünscht funktionierend, aber als kleine Richtlinie für den Einstieg könnte man es so gelten lassen :-)
 

Neue Beiträge

Zurück