Christian Seiler: Formularauswertung funzt nicht :-(

Beitrag lesen

Hallo Martin,

function istEmail(mail) {

Hier definierst Du eine Funktion istEmail mitten in einer anderen Funktion (checkForm) => Parse error => Abbruch der Scriptausführung.

function testEmail(str) {

Hier definierst Du eine Funktion testEmail mitten in einer anderen Funktion => s.o. (genaugenommen kommt er gar nicht hierhin)

if (!isEmail(str)) {

Hier rufst Du eine nicht-existierende Funktion isEmail auf. Die Funktion heißt bei Dir aber istEmail. (mit t)

/* Ist irgendwo ein Fehler aufgetreten ? */
if(error) {
  error_message += "\nBitte korrigieren !!!";
  alert(error_message);
  return false; //Formular wird nicht abgeschickt.
} else {
  return true;  //Formular wird abgeschickt.
}

Hier machst Du plötzlich mit dem Code in der Funktion checkForm weiter.

Was mir irgendwie schleierhaft ist: in der Funktion testEmail machst Du ein alert(), in der Funktion checkForm sammelst Du aber alle Fehler.

<form action="mailto:email@email.de" method="POST" onSubmit="return checkForm();">

Hier fehlt der Name des Formulars. (in der JavaScript-Funktion checkForm verwendest Du anmeldung als Namen)

Desweiteren funktioniert action="mailto:etwas" nur, wenn der Benutzer das Emailprogramm auch in den Browser eingebunden hat. Sinnvoller ist es, in dem Fall einen Formmailer zu verwenden. Da gibt es ein paar Feature-Artikel dazu. (aber vielleicht solltest Du Dir das für später aufheben, sobald das hier mal funktioniert :-))

Im Prinzip musst Du so vorgehen:

die Funktion istEmail aus der Funktion checkForm rausnehmen und darüber setzen. Die Funktion testEmail ganz rausschmeißen. (da Du ja am Ende von checkForm sowieso ein Alert mit allen Fehlermeldungen ausgibst) Danach solltest Du folgende Zeilen Code aus der Funktion checkForum so überarbeiten, dass die if-Anweisung istEmail aufruft, anstelle mit indexOf zu arbeiten:

} else if(document.anmeldung.email.value.indexOf("@") == -1)
  {error = true;
     error_message += "- Bitte korrekte EMAIL angeben!\n";}

(das überlasse ich jetzt mal Dir, sonst lernst Du nichts)

Viel Spaß beim Programmieren!

Grüße,

Christian