Homepage selbermachen 7.846 Themen, 35.563 Beiträge

JavaScript-Problem: Wert von einer Variable nicht veränderbar

Lönie / 7 Antworten / Flachansicht Nickles

Hallo Leute, ich soll für Informatik ein Projekt vorstellen, und ich habe mir eine Art Eignungstest vorgestellt. Die Werte werden in diversen input type="radio" und select-Feldern eingegeben, die dann von der Funktion Kanal() ausgewertet werden.

Ich hatte mir das so gedacht, dass man einen bestimmten Punkt anklickt, worauf die Variable ein paar Punkte zugerechnet bzw. abgezogen bekommt. Der AM ENDE feststehende Wert soll als Grundlage für die Ausgabe dienen. Hier die Funktion:

"function Kanal()
{
var Punktzahl = 0 ; <- die Variable mit Anfangswert


if(document.Test.Geschlecht[0].checked==true) ; <- für die Antwort gibt's Punkte
{Punktzahl=Punktzahl+2} ;
if(document.Test.Geschlecht[1].checked==true) ; <- für diese allerdings nicht
{Punktzahl=Punktzahl-2} ;

if(Punktzahl<0)
{Ausgabe="Sie sind ungeeignet"} <- Auswertung u. Ausgabe

document.Test.Auswertung.value=Ausgabe ;
}"

Punktzahl wird allerdings zu keiner Zeit verändert, denn

"if(Punktzahl==0)
{Ausgabe="Sie sind ungeeignet"}"

funktioniert.
Wer kann mir helfen?

bei Antwort benachrichtigen
xafford Lönie „JavaScript-Problem: Wert von einer Variable nicht veränderbar“
Optionen

Das abschließende Semikolon wurde als Fehler ja schon angesprochen... das ist syntaktisch falsch, aber das ist nicht der Fehler mit der Punkteberechnung. Der Fehler liegt im Geltungsbereich von Variablen.

Wenn Du eine Variable mit "var" innerhalb einer Funktion deklarierst, so ist diese Variable lokal in ihrem Geltungsbereich. Sie ist also innerhalb einer Funktion nicht sichtbar und verfügbar. Ebensowenig ist diese statisch zwischen einzelnen Funktionsaufrufen. Der zweite Aufruf der Funktion weiß nichts über den Wert der Variablen aus dem ersten Aufruf.

Deklariere die Varíable Punktzahl also außerhalb der Funktion, dann kann ihr Wert auch über Funktionsaufrufe hinweg genutzt werden.

Ich würde mal sagen, Du bist durchgefallen ;o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen