Checkbox/ Radiobutton Eingabe prüfen

Hallo zusammen,
Ich versuche derzeit ein Formular für meine Website zu erstellen. Dabei muss ich unbedingt sicherstellen, dass bsimmte Angaben gemacht und checkboxes bzw. Radiobuttons ausgewählt werden.
Ich verwende dafür eine Funktion eingaben_ueberpruefen() diese wird beim Klicken des submit-buttons aufgerufen. Was ich geschrieben habe funktioniert bei Eingabefeldern. Hier überprüfe ich z.B. die Länge des eingegebenen Begriffes. Um zu überprüfen, ob eine Checkbox oder ein Radiobutton angewählt ist, habe ich mir folgendes überlegt.

else if (document.Formular.agb.checked != true)
{
alert(„Bitte Formular vollständig ausfüllen!“)
return false;
}

Ich bin mir ziemlich sicher, dass das ganze so funktionieren müsste. Da es das aber nicht tut, vermute ich, dass ich irgendwo im Code einen Fehler gemacht habe, der sich erst hier auswirkt. Könntet ihr Experten euch bitte meinen Quellcode ansehen und mir sagen, wo der Fehler liegt?

Vielen Dank im Voraus.

Hier der Code: (Verzeiht, wenn ich unwichtige Zeilen poste, aber Wurm kann überall sein) Ich verwende „agb“ zum ersten mal ziemlich weit oben in $agb = ‚unchecked‘; dann als letztes im javascript und dann noch einmal fast ganz unten in

Füllen Sie dieses Formular aus um ein Inserat aufzugeben

<?php if ($_POST) {
$vorname = $\_POST['vorname']; $nachname = $\_POST['nachname']; $telefon = $\_POST['telefon']; $besonderheiten = $\_POST['besonderheiten']; $email = $\_POST['email']; $url = $\_SERVER['PHP\_SELF']; $languages = $\_POST['languages']; $anschrift = $\_POST['anschrift']; $sprachen = $\_POST['sprachen']; $rechnungsname = $\_POST['rechnungsname']; $rechnungsanschrift = $\_POST['rechnungsanschrift']; $objektname = $\_POST['objektname']; $zimmer = $\_POST['zimmer']; $selected\_pool = $\_POST['pool']; $selected\_haustiere = $\_POST['haustiere']; $objektanschrift = $\_POST['objektanschrift']; $zusatzkosten = $\_POST['zusatzkosten']; $kurzbeschreibung\_dt = $\_POST['kurzbeschreibung\_dt']; $beschreibung\_dt = $\_POST['beschreibung\_dt']; $kurzbeschreibung\_pt = $\_POST['kurzbeschreibung\_pt']; $beschreibung\_pt = $\_POST['beschreibung\_pt']; $kurzbeschreibung\_en = $\_POST['kurzbeschreibung\_en']; $beschreibung\_en = $\_POST['beschreibung\_en']; $selected\_mitgliedschaft = $\_POST['mitgliedschaft']; $selected\_belegungsplan = $\_POST['belegungsplan']; $premium = $\_POST['premium']; //übergibt Wert aus $\_POST['x'] (post-methode) an Variable $x $agb = 'unchecked'; if (isset($\_POST['agb'])) { $agb = $\_POST['agb']; if ($agb == 'positiv') { $agb = 'checked'; } } if ($selected\_haustiere == 'erwünscht') { $haustiere = 'erwünscht'; } else if ($selected\_haustiere == 'nicht erwünscht') { $haustiere = 'nicht erwünscht'; } if ($selected\_pool == 'vorhanden') { $pool = 'vorhanden'; } else if ($selected\_pool == 'nicht vorhanden') { $pool = 'nicht vorhanden'; } if ($selected\_mitgliedschaft == 'einfache\_mitgliedschaft') { $mitgliedschaft = 'einfache Mitgliedschaft'; } else if ($selected\_mitgliedschaft == 'Premiummitgliedschaft') { $mitgliedschaft = 'Premiummitgliedschaft'; } if ($selected\_belegungsplan == 'belegungsplan') { $belegungsplan = 'ja'; } else if ($selected\_belegungsplan == 'kein\_belegungsplan') { $belegungsplan = 'nein'; } # Ihre E-Mail-Adresse $an ="hier steht eigentlich eine emailadresse"; //variable 'an' ist emailadr # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet $text = "Neues Inserat:\n\n Kundeninformation: \n Vorname: $vorname\n Nachname: $nachname\n Kontakt: $telefon, $email\n Anschrift: $anschrift\n Welche Sprachen sprechen Sie? $sprachen\n Rechnung: $rechnungsname, $rechnungsanschrift\n\n Objektinformationen: \n\n Name es Objektes: $objektname\n Anschrift: $objektanschrift\n Anzahl der Zimmer: $zimmer\n Pool: $pool\n Haustiere: $haustiere\n Zusätzliche Kosten: $zusatzkosten\n Besonderheiten: $besonderheiten\n Kurzbeschreibung Deutsch: $kurzbeschreibung\_dt\n ausführliche Beschreibung Deutsch: $beschreibung\_dt\n Kurzbeschreibung portugiesisch: $kurzbeschreibung\_pt\n ausführliche Beschreibung portugiesisch: $beschreibung\_pt\n Kurzbeschreibung englisch: $kurzbeschreibung\_en\n ausführliche Beschreibung englisch: $beschreibung\_en\n\n Mitgliedschaft: $mitgliedschaft\n Premiumwertung: $premium\n\n Belegungsplan: $belegungsplan \n\n AGB: $agb"; //Inhalt der email definiert @mail($an, "Test Aufnahmebogen", $text, "From: " . $email); //Mailfunktion mit Ziel, Betreff, Text echo " Bitte laden Sie zum Abschluss einige Bilder von $objektname, sowie eine Preisliste hoch. 10 Bilder kostenlos, weitere Bilder kostenpflichtig "; $max\_no\_img=10; // Maximum number of images value to be set here echo " "; echo ""; ?\> " /\> <?php for($i=1; $i<=$max_no_img; $i++){
echo " |Bild Bild "; } echo "Preisliste "; echo ""; echo " "; } else { ?\> function eingaben\_ueberpruefen() { var mail = document.Formular.email.value; if ((mail.length \< 5 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1)){ alert("Bitte geben Sie eine gültige email-Adresse ein!") document.Formular.email.focus(); return false; } else if ((document.Formular.telefon.value.length \< 6)) { alert("Bitte geben Sie eine Telefonnummer an, unter der Sie erreichbar sind!") document.Formular.email.focus(); return false; } else if (document.Formular.nachname.value.length \< 2) { alert("Bitte geben Sie Ihren Namen an!") document.Formular.nachname.focus(); return false; } else if (document.Formular.vorname.value.length \< 2) { alert("Bitte geben Sie Ihren Vornanamen oder eine Anrede an!") document.Formular.nachname.focus(); return false; } else if (document.Formular.anschrift.value.length \< 20) { alert("Bitte geben Sie Ihre Anschrift an") document.Formular.anschrift.focus(); return false; } else if (document.Formular.sprachen.value.length \< 2) { alert("Bitte geben teilen Sie uns mit, welche Sprachen Sie sprechen Sie werden Anfragen in diesen Sprachen erhalten.") document.Formular.sprachen.focus(); return false; } else if (document.Formular.objektname.value.length \< 5) { alert("Bitte geben Sie einen Namen für Ihr Objekt an! Diese Angabe ist wichtig, damit Ihr Objekt über unsere Suchfunktion gefunden werden kann.") document.Formular.objektname.focus(); return false; } else if (document.Formular.objektanschrift.value.length \< 2) { alert("Bitte geben Sie die genaue Adresse Ihres Objektes an! Diese Angabe ist wichtig, damit Ihr Objekt über unsere Suchfunktion gefunden werden kann.") document.Formular.objektanschrift.focus(); return false; } else if (document.Formular.zimmer.value.length \< 1) { alert("Bitte geben Sie an, über wieviele Schlafzimmer Ihre Immobilie verfügt! Diese Angabe ist wichtig, damit Ihr Objekt über unsere Suchfunktion gefunden werden kann.") document.Formular.zimmer.focus(); return false; } else if (document.Formular.agb.checked != true) { alert("Bitte Formular vollständig ausfüllen!") return false; } else return true; " name="object\_id" size="27" /\> Kundeninformation: Name Vorname Telefon E-Mail Anschrift Welche Sprachen sprechen Sie? Rechnungsadresse falls abweichend: Name Anschrift Objektdaten: Name des Objektes genaue Anschrift: Anzahl der Zimmer Pool: vorhanden nicht vorhanden Haustiere: erwünscht nicht erwünscht Besonderheiten (Meerblick, beheizbarer Pool, Tennisplatz, Golfplatz in der Nähe etc.): zusätzliche Kosten (Kaution, Poolheizung, Internet etc.): Kurzbeschreibung des Objektes (deutsch, ca 400 Zeichen): ausführliche Beschreibung des Objektes (deutsch, min. 1500 Zeichen, erster Abschnitt wird im Katalog fett gedruckt): Übersetzung Kurzbeschreibung (portugiesisch): Übersetzung ausführliche Beschreibung (portugiesisch): Übersetzung Kurzbeschreibung (englisch): Übersetzung ausführliche Beschreibung (englisch): Mitgliedschaft einfache Mitgliedschaft Premiummitgliedschaft Wieviel möchten Sie für Ihre Premiumwertung zahlen vgl. Aufnahmebedingungen §x: Belegungsplan Ich möchte einen Belegungsplan zur Verfügung stellen Ich möchte keinen Belegungsplan zur Verfügung stellen Ich habe die [AGB und Aufnahmebedingungen](neukunden/agb-und-aufnahmebedingungen.pdf) gelesen und bin mit ihnen einverstanden

Im Form-Modus ansprechen klappt bei mir auch nicht immer (Warum auch immer?). Setz am besten IDs bei den relevanten Feldern und sprich die Felder dann über document.getElementById(Name) an.

Sorry, den Code kann ich so nicht lesen, die HTML-Ausgabe hätte warscheinlich gereicht.

grtz
michi

Also bei mir tut dein Code wunderbar wenn ich die funktion eingaben_ueberpruefen() mit einer geschweiften Klammer wieder schließe :wink:

Danke sanguinantis,
Ich weiß nicht genau ob ich lachen oder weinen soll :wink:
Ich habe geschlagene vier Stunden daran gesessen desn Fehler zu finden und dann liegt es daran, das ich die Funktion nicht schließe.

Sowas kommt vor, ist ziemlich frustrierend wenn man Stunden lang an einem kleinen Fehler dran hockt :wink:

Hallo,

Ich versuche derzeit ein Formular für meine Website zu
erstellen. Dabei muss ich unbedingt sicherstellen, dass
bsimmte Angaben gemacht und checkboxes bzw. Radiobuttons
ausgewählt werden.

Mal so ne Frage: Wenn Du das unbedingt sicherstellen musst, warum nimmst Du dann JavaScript dafür? Damit kannst Du das nicht sicherstellen, denn man stellt einfach JavaScript ab und schon kann man bei Dir unsinnige Werte abschicken?

Wenn es so wichtig ist, musst Du Dir eine serverseitige Lösung schreiben!

Liebe Grüße,
-Efchen

P.S.: Was soll die Tabelle? Hier liegen keine tabellarischen Daten vor!
http://www.einfach-fuer-alle.de/artikel/barrierefrei…