Fehler finden pruefeFormular

Gooody

Kabelverknoter(in)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Bestellung - Espen</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">


function pruefeFormular(f) {
var fehlermeldung = "";
if (f.elements["Farbe1"].value == "") {
fehlermeldung += Bitte geben Sie die Kleidfarbe an.\n";
}
if (f.elements["Größe1"].value == "") {
fehlermeldung += Bitte geben Sie die Kleidgröße an.\n";
}
if (f.elements["Vorname"].value == "") {
fehlermeldung += Bitte geben Sie ihren Vornamen an.\n";
}
if (f.elements["Nachname"].value == "") {
fehlermeldung += Bitte geben Sie ihren Nachnamen an.\n";
}
if (f.elements["Straße"].value == "") {
fehlermeldung += Bitte geben Sie ihre Straße an.\n";
}
if (f.elements["Nummer"].value == "") {
fehlermeldung += Bitte geben Sie ihre Hausnummer an.\n";
}
if (f.elements["Postleitzahl"].value == "") {
fehlermeldung += Bitte geben Sie ihre Postleitzahl an.\n";
}
if (f.elements["Ort"].value == "") {
fehlermeldung += Bitte geben Sie ihren Ort an.\n";
}
if (f.elements["Land"].value == "") {
fehlermeldung += Bitte geben Sie ihr Land an.\n";
}
if (f.elements["Email].value == "") {
fehlermeldung += Bitte geben Sie ihre Email-Adresse an.\n";
}
if (f.elements["AGB"].checked) == "") {
fehlermeldung += Bitte akzeptieren Sie die AGB's.\n";
}
if (fehlermeldung == "") {
return true;
} else {
alert("Es ist ein Fehler aufgetreten!\n\n" + fehlermeldung);
return false;
}
}

</script>
</head>
<body>

<form onsubmit="return pruefeFormular(this);">
<Table Border="2">

<tr><td colspan="2"><center>Mirabilis</center></td></tr>

<tr>
<td rowspan="14"><IMG SRC="Kleider/kleid1.jpg"></td>
</tr>
<tr><td>Preis (inkl. Versand): 79.95€</td></tr>
<tr><td>
Farbe: <select name="Farbe1">
<option value="">Farben</option>
<option value="Weiß">Weiß</option>
<option value="Rot">Rot</option>
<option value="Schwarz">Schwarz</option>
</select>
</td></tr>
<tr><td>
<select name="Größe1">
<option value="">Größen</option>
<option value="XS">XS</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
</select>
<b> </td></tr>



<tr><td>Vorname: <input type="text" name="Vorname" /> <br></td></tr>
<tr><td>Nachname: <input type="text" name="Nachname" /> <br></td></tr>
<tr><td>Straße: <input type="text" name="Straße"
> Hausnummer: <input type="text" name="Nummer" /><br></td></tr>
<tr><td>PLZ: <input type="text" name="Postleitzahl" /> <br></td></tr>
<tr><td>Ort: <input type="text" name="Ort" /> <br></td></tr>
<tr><td> Land: <select name="Land">
<option value="">-- Land wählen --</option>
<option value="D">Deutschland</option>
<option value="A">Österreich</option>
<option value="CH">Schweiz</option>
</select> <br>
<tr><td>eMail: <input type="text" name="Email" /> <br></td></tr>
<tr><td>Telefon (optional): <input type="text" name"Telefonnummer" /> <br></td></tr>
<tr><td>Mit dem setzen eines Häkchens akzeptieren Sie unsere AGB's</tr></td>
<tr><td>Ich akzeptiere sie <input type="radio" name="AGB" value="Akzeptiert"/> Ich akzeptiere sie nicht <input type="radio" name="AGB2" value="Nicht akzeptiert"/></tr></td>




<tr><td colspan="2"><b><h2><font color="#000000"><div align="center"><input type="submit" name="submit" value="Bestellen" /> </div></div></font></h2></b></a></td></tr>

</Table>
<br>


<h3 style="color: #000000; border: 1px solid #000000;"> Allgemeine Geschäftsbedingungen:<br>
Mit dem Abschicken verbinden Sie sich mit dem Kauf des ausgewählten Produktes.
Hinzu kommt, dass Sie damit einverstanden sind, <br>dass wir Ihnen Newsletter schicken dürfen.
Ihre Dateien werden selbstverständlich an Dritte weitergegeben.</h3>

</form>
</body>
</html>


Wenn ich es öffne zeigt er mir keine javascript box mit den fehlern. warum??
 
Hey, ich hab mir den Code jetzt noch nicht ganz durchgelesen und ich kann auch kein javaskript, aber muss es bei
Code:
fehlermeldung += Bitte geben Sie die Kleidfarbe an.\n";
nicht heißen:
Code:
fehlermeldung += "Bitte geben Sie die Kleidfarbe an.\n";
also das vordere Anführungszeichen vergessen?!?

Edit: noch zwei sachen, die mir aufgefallen sind
Code:
<form onsubmit="return pruefeFormular(this);">
was bewikt das? muss du das true oder false nicht noch iwwi "verarbeiten"?

Code:
<b>   </td></tr>
?
ich mag diese ganzen <><><<<<>>>><<<>>><< ja immer nicht so :D vllt ist da ja auch irgendwie der fehler. Ansonsten probier doch mal nur den Anfang aus und dann füg deine weiteren bestandteile nach und nach hinzu. dann kann man immer gut sehe, ab wann der Fehler auftritt.
 
Zuletzt bearbeitet:
mh danke, das eine ist mir gar nicht aufgefallen, aber eher eine schönheitsfloskel... ähm, das weißt dem javascript von oben den text daunter zu, also
<form onsubmit="return pruefeFormular(this);">

das er das prüfen soll ;)

geht leider immer noch nicht
 
@fadade zur Info: wenn "onsubmit" false zurückgibt, wird das Forumlar nicht abgesendet. Sprich das ist eine super Möglichkeit Eingaben per Javascript vorm Abesenden des Forumlars zu überprüfen und den Nutzer sofort darauf aufmerksam zu machen. Allerdings muss auch beachtet werden dass JavaScript deaktiviert sein könnte und das Formular trotzdem geschickt wird, also auf der verarbeitenden Seite die Überprüfung ersetzt das nicht!

Zu den Tippfehlern:
das Anführungszeichen bei fehlermeldung += "..." fehlt in jeder dieser Zeilen (11 mal).
Dann fehlt noch eins in Zeile 38
Code:
if (f.elements["Email[COLOR="red"]"].value == "") {
Und diese Klammer ist zu viel in Zeile 41:
Code:
if (f.elements["AGB"].checked[COLOR="red"]) == "") {
Und zu guterletzt tust du dich in 95% aller Programmier-/Beschreibungssprachen ziemlich schwer damit Sonderzeichen außerhalb von Strings zu verwenden. In deinem Fall stören die beiden Elemente im array elements mit den Bezeichnungen ["Größe1"] und ["Straße"]. Einfach diese zusammen mit den names der Formelemente anpassen.

Falsch gesetzte Anführungszeichen und klammern sind immer nervig, daher gibt's Editoren mit Syntax-Highlighting (feiner kostenloser Universaleditor z.B.: notepad++) oder automatischer Einrückung, was das Finden solcher Fehler vereinfacht.

P.S.: Tolles Addon für Firefox: Firebug. Der gibt u.A. Javascriptfehler aus.
 
Zurück