Kleines Problem einen Eingabetext prüfen

-Phantomas-

Mitglied
Hallo....
ich versuche gerade eine Art Kontaktformular zu erstellen und habe jedoch beim Prüfen der Textfeldern, nach Inhalt leider ein kleines Problem ...

Das Formular besteht aus 3 Textfeldern und einem Knopf:
name_txt.text
msg_txt.text
status_txt.text

Beim drücken des Knopfes soll geprüft werden, ob Name und Text eingegeben wurden und eventuelle Hinweise im Statustext angezeigt werden.

Code:
stift_btn.onRelease = function () { 
	if (name_txt.text == "" && msg_txt.text == "") {name_txt.text ="Jemand", status_txt.text ="Bitte geben Sie einen Text ein"}
	if (msg_txt.text == "" && name_txt.text != "") {status_txt.text ="Bitte geben Sie einen Text ein"}
	if (name_txt.text == "" && msg_txt.text != "") {name_txt.text ="Jemand", gotoAndPlay(21)}
	return;}

Ziel:
Wenn Name leer gelassen wurde dann wird er automatisch durch "Jemand" ersetzt.
Wenn Msg leer gelassen wurde wird man zur Eingabe aufgefordert, erst wenn mindestens Msg ausgefüllt ist darf es weiter gehen...

Wäre super wenn mir jemand einen Tipp geben könnte... was ich falsch mache.


LG
-Phantomas-
 
Tag,
auf welcher Ebene ist der shift_btn und wo befinden sich die Textfelder? return; ist übrigens überflüssig. Funktioniert ein einfaches name_txt.text = "foo"; ohne die ganzen if-Abfragen?
 
Zuletzt bearbeitet:
alle Elemente (_txt & _btn) sind auf der gleichen Ebene...

ohne die "If-" Abfragen:
name_txt.text = "Jemand" funktioniert ...

irgendwie verschachtele ich die If-Bedinungen falsch ... oder die Bedienungen (&&,||,==,!=)

Probiere schon alles mögliche ... aber nie klappt es so wie es soll ...

:confused:
 
Geht denn nur if(name_txt.text == "") ? Vielleicht sind die Textfelder nicht wirklich leer? Ansonsten poste mal bitte die fla.
 
Hab den Code etwas verändert...
bis zum ersten "else if" funktioniert alles...

Falls keine Name vorhanden ist, wird er durch "Jemand" ersetzt ...
dann prüft (AS) aber nicht mehr ob text in "msg_txt.text" vorhanden ist und gibt direkt in jedem Fall den "status_txt.text" aus.
Die letzte Anweisung funktioniert kompl. nicht ...



Code:
stift_btn.onRelease = function () { 
	if (name_txt.text == "") {name_txt.text = "Jemand"}
	else if (name_txt.text != "" || msg_txt.text == "") {status_txt.text = "Bitte geben Sie einen Text ein"}
	else if (msg_txt.text != "") {gotoAndPlay(21)
}
 
Naja - else if ist ja dazu da, dass es nur dann ausgeführt wird, wenn die Bedingung der if-Anweisung nicht zutrifft. Wenn also name_txt.text == "" ist, wird der Rest (zu Recht) ignoriert. Poste mal die fla, ich schau kurz rein.
 
Ich hab nicht genau herausfinden können was, aber irgendwas ist mit deinem msg_txt-Textfeld nicht in Ordnung. Es war nie leer, sondern hatte immer einen Zeilenumbruch drin. Ich hab es einfach mal gelöscht und wieder neu erstellt und es funktionierte alles.

Deswegen hat auch nicht msg_txt.text == "" funktioniert.
 
Ja, du musst die else-Anweisungen weg machen. Lass dir am Besten mal die Werte per trace() ausgeben:

Code:
stift_btn.onRelease = function() {
trace(":"+name_txt.text+":");
trace(":"+msg_txt.text+":");
if (name_txt.text == "") {
	name_txt.text = "Jemand";
} 
if (msg_txt.text == "") {
	status_txt.text = "Bitte geben Sie einen Text ein";
} 
if (msg_txt.text != "" && name_txt.text == "") {
	gotoAndPlay(21);
}
}

Die Ausgabe sollte so sein:
::
::
 
Zurück