Hi,
ja, ich bin Taucher, genauer gesagt ein ehemaliger (PADI ist mir zu teuer, wenn ich nicht unterrichte) Tauchlehrer. Auf den Malediven war ich noch nicht, meistens tauche ich in Asien (Thailand, Indonesien, Japan) oder Australien.
Hier mal meine Lösung, die ich immer verwende. Ist zwar nicht perfekt, funktioniert aber bei mir.
Code:
<script language="javascript">
<!--
function pruefen(){
var Formular = document.plaetze; // Schreibfaulheit
var fehler = 0; // Variable, um zu verhindern, dass immer alle Ueberpruefungen stattfinden und der User
// eventuell mit mehreren Alert- Boxen genervt wird.
/* ***** Abfrage, ob Felder ausgefuellt sind ******** */
if (fehler == "0" && Formular.platz.value == "") {
alert ("Bitte fügen Sie den Namen des Tauchplatzes ein.");
Formular.platz.focus(); // setzt Focus in betreffendes Feld "platz"
fehler++; // hochzaehlen, damit am Schluss false zurueck gegeben wird und weitere Ueberpruefungen
// nicht mehr durchlaufen werden
}
if (fehler == "0" && Formular.plz.value != ""){
// Weitere Verarbeitungen im Fehlerfall
}
}
}
/*
Endgueltige Abfrage, ob Formular abgesendet werden darf oder nicht
*/
if (fehler == "0") {
return true; // sende Formular
} else {
return false; // sende Formular NICHT
}
}
//-->
</script>
<form action="......" name="plaetze" method="post" onReset="return confirm('Wollen Sie wirklich alle Eingaben löschen?')" onSubmit="return pruefen(this)">
Bitte beachte, daß ich einen anderen Weg als Du gewählt habe. Ich überprüfe jedes Feld einfach und nicht in einer if - else if - Kaskade (oder wie man das nennt).
Wichtig ist am Ende nur, daß Du im Fehlerfall "false" zurück gibst, im Erfolgsfall "true".
Beachte ausserdem, daß in meinem Original eine andere Datei aufgerufen wird, allerdings ist es egal, wo die Formularabarbeitung letzten Endes geschieht.
Wenn Du noch weitere Probleme haben solltest kannst Du mir mal Deinen Sourcecode senden (Email: mein "Spitzname mit A" (siehe unten) at <meine Domain>). Allerdings werde ich erst am Abend dazu kommen, mir das anzusehen. Insofern ist dann eine Verzögerung von 24 h drin.
Besser wäre es, Du stellst den Sourcecode auf eine Webseite und postest hier den Link. Dadurch können Dir auch andere helfen.
Gruß,
Andy