| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2007
Beiträge: 2
|
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 |
| | |
| | #2 (permalink) |
| will code HTML for food 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 |
| | |
| | #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? |
| | |
| | #4 (permalink) |
| will code HTML for food 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!!!
}; Code: if (txt_email.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) { Code: if (hz.email.text.indexOf("@") == -1 || hz.name.text.leer() || hz.telefon.text.leer()) { bis dann, querkopf Geändert von querkopf (25-09-2007 um 09:25 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |