Problem mit Variablen

Fabsch

Erfahrenes Mitglied
Hallo,
ich habe da ein Problem mit ein paar Variablen.

Erst einmal noch eine Frage: Sind Variablen, die man außerhalb von Funktionen definiert (mit dem 'var' davor) auch innerhalb von Funktionen verfügbar?
Wenn ja:

Ich habe drei input-Felder. Wenn ich da etwas eingebe und es abschicke, werden die Farben von diesen Feldern verändert (die Schrift des Felds mit der ID 'nick' wird rot, wenn dieser Nick schon existiert, 'passwort' und 'repeat_pw' werden rot, wenn diese nicht übereinstimmen).
Wenn man dann diese Felder verändert, wird die Farbe eben wieder so verändert, dass wenn der Fehler immer noch da ist, sie rot sind und wenn nicht, dann weiß.

HTML:
<script type="text/javascript">
var value_nick = document.getElementById('nick_old').value;
var value_pw = document.getElementById('passwort_old').value;
var value_rpt = document.getElementById('repeat_pw_old').value;

var nick = document.getElementById('nick');
var pw = document.getElementById('passwort');
var rpt = document.getElementById('repeat_pw');

function update_colors()
{
	nick.style.color = (nick.value == value_nick ? "red" : "gray");
}
</script>

Und jetzt zum eigentlichen Problem:
Die Variablen, die ich über der Funktion definiert habe, sind anscheinend in der Funktion nicht vorhanden, da der Internet Explorer in der Zeile wo "nick.style.color = ..." steht einen Fehler anzeigt: "Objekt erwartet", im Firefox steht bei den Fehlern " 'nick' has no properties".

Ich hoffe, ich habe alles ausführlich genug erklärt :)

MfG
Fabsch
 
Antwortet keiner :(

Ich hab mal etwas nachgedacht darüber und kann jetzt eine andere Frage stellen:
Gibt es in Javascript etwas, das dem 'global $variable1, $variable2,...;' in PHP gleicht?


Ich hoffe, dass diesmal jemand antwortet :D

MfG
Fabsch
 
Hi,

auf HTML-Elemente kannst Du erst zugreifen, wenn das Dokument fertig geladen ist. Wenn das Script also im Head-Bereich steht, kannst Du mit der Methode getElementById erst im onload-Event auf die gewünschten Elemente zugreifen.

Code:
<script type="text/javascript">
var value_nick, value_pw, value_rpt, nick, pw, rpt;

window.onload = function(){
  value_nick = document.getElementById('nick_old').value;
  value_pw = document.getElementById('passwort_old').value;
  value_rpt = document.getElementById('repeat_pw_old').value;

  nick = document.getElementById('nick');
  pw = document.getElementById('passwort');
  rpt = document.getElementById('repeat_pw');
}

function update_colors()
{
	nick.style.color = (nick.value == value_nick ? "red" : "gray");
}
</script>
Vielleicht hilft Dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück