Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX 2004

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-09-2007, 09:07   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2007
Beiträge: 2
Question Mehrere ODER in IF-Bedingung.

Hallo,
ich habe ein Problem mit meinem Kontaktformular, genauer gesagt, mit der Überprüfung, ob gewisse Daten (Email, Name, Telefon) gültig eingegeben wurden. Da ich mich noch nicht sehr lange mit Flash beschäftige und das Formular mehr oder weniger zusammengeschustert habe, hoffe ich, dass hier jemand so nett ist und mir helfen kann.

Folgende Bedingungen überprüfe ich vor dem Versenden.
------------------------------
Bedingung:
Wenn kein "@" in Feld Email
oder
Feld Name = Leer
oder
Feld Telefon = Leer
==> Fehlermeldung einblenden

Ansonsten ==> Verschicke Formular
---------------------------------
Allerdings ist nur das "@" Zeichen zwingend. Lasse ich zum testen "Name" oder "Telefonnummer" weg, wird das Formular trotzdem verschickt.

Hier die Stelle, an der ich die Bedingung stelle:
Code:
if (txt_email.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) 
{ // Bei True wird die Fehlermeldung angezeigt
[...]
}
-------------------------------------

Falls das nicht ausreicht hier der gesamte Code:
Code:
hz = this;
// Die Textfelder bekommen eine Zuweisung
hz.onLoad = function() {
	hz.name.text = "";
	hz.str.text = "";
	hz.land.text = "D";
	hz.plz.text = "";
	hz.ort.text = "";
	hz.telefon.text = "";
	hz.email.text = "@";
	hz.nachricht.text = "";
};
// Das Array mit den Instanznamen der Textfeldern
textfeld = new Array();
textfeld[0] = "name";
textfeld[1] = "str";
textfeld[2] = "land";
textfeld[3] = "plz";
textfeld[4] = "ort";
textfeld[5] = "telefon";
textfeld[6] = "email";
textfeld[7] = "nachricht";
// Durchlaufe solange wie Elemente im Array vorhanden sind
for (i=0; i<textfeld.length; i++) {
	// Funktion für den Hintergrung im Textfeld
	hz[textfeld[i]].onSetFocus = function() {
		this.backgroundColor = 0xcccccc;
		// Überprüfung, ob im Textfeld schon reingeklickt worde ist
		// damit nicht beim erneuten klicken der geschriebene Text gelöscht wird
		if (hz[this._name]) {
			hz[this._name].text = "";
			hz[this._name] = false;
		}
	};
	// Funktion für den Hintergrung im Textfeld
	hz[textfeld[i]].onKillFocus = function() {
		this.backgroundColor = 0xFFFFFF;
	};
}
// Überprüfung ob in den Pflichtfeldern etwas eingetragen ist
// Diese Funktion wird unten in der if Bedingung aufgerufen
String.prototype.leer = function() {
	for (i=0; i<this.length; i++) {
		// Steht was im Textfeld ?
		// 32 bedeutet größer als ein Leerzeichen, da das Leerzeichen den 
		// Code 32 besitzt.
		if (this.charCodeAt(i)>32) {
			return true;
		}
	}
};
// Funktion für den Button
but_senden.onRelease = function() {
	// Diese Überprüfung ruft die Funktion leer auf
	if (txt_email.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) {
		// Bei True wird die Fehlermeldung angezeigt
		hz.mc_fehler._visible = true;  //Fehlermeldung
		hz.mc_verschickt._visible = false; //Nachricht "Wurde verschickt"
	} else {
		// Weiterhin die Fehlermeldung ausblenden und das php Script aufrufen
		hz.mc_fehler._visible = false;
		hz.mc_verschickt._visible = true;
		loadVariablesNum("senden.php", 0, "GET");
	}
};

Vielen Dank für eure Hilfe
Calisto83 ist offline   Mit Zitat antworten
Alt 24-09-2007, 09:26   #2 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Hallo und willkommen im Forum!

Sowas gab's hier schon öfter.

schau mal hier rein: [stuff] 'n kleines Kontaktformular für euch

evtl. hilft Dir das weiter....

bis dann,
querkopf
querkopf ist offline   Mit Zitat antworten
Alt 24-09-2007, 11:21   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2007
Beiträge: 2
Vielen Dank Querkopf,

prinzipiell hilft es mir weiter, den nach dem von dir verlinkten Post kann ich mir ein "neues" Kontaktformular bauen.

Was stimmt denn aber an meinem nicht? Ich denke, dass es doch nur eine Kleinigkeit ist, dass die IF-Bedingung nicht richtig ausgewertet wird.

Oder habe ich einen Denkfehler und sollte wirklich noch mal neu beginnen?
Calisto83 ist offline   Mit Zitat antworten
Alt 25-09-2007, 09:20   #4 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
mir sind ein paar Sachen aufgefallen, evtl. hilft Dir das:
Code:
String.prototype.leer = function() {
	for (var i=0; i<this.length; i++) { // var vor diese variable bitte!!!
		// Steht was im Textfeld ?
		// 32 bedeutet größer als ein Leerzeichen, da das Leerzeichen den 
		// Code 32 besitzt.
		if (this.charCodeAt(i)>32) {
			return false; // also ist es NICHT leer
		}
	}
return true; // wenn es nicht leer ist braucht die Function auch ein return!!!
};
und
Code:
if (txt_email.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) {
stimmt das? muß das nicht
Code:
if (hz.email.text.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) {
heißen?

bis dann,
querkopf

Geändert von querkopf (25-09-2007 um 09:25 Uhr)
querkopf ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele