Formularfelder als Pflichtfelder formatieren
tom_kn
- https
Hi,
D.h. man kann das Formular erst absenden wenn die bestimmten Felder ausgefüllt sind.
Kann mir bitte jemand sagen ob bzw. wie ich sowas anstellen kann??
Mit der Suche bin ich dabei leider nicht weiter gekommen....
Thanks!
Hallo,
D.h. man kann das Formular erst absenden wenn die bestimmten Felder ausgefüllt sind.
Es gibt keine zuverlässige Lösung.
Grundsätzlich muss das Script, das die Formulardaten entgegennimmt und verarbeitet, mit fehlerhaften oder fehlenden Angaben klarkommen. Das könnte beispielsweise heißen, dass das Script die EIngaben prüft und im Fehlerfall das Formular mit den eingegebenen Daten wieder als Antwort zurückschickt (Suchwort: Affenformular).
Aber eine Vorab-Prüfung kannst du natürlich auch clientseitig machen. Über den Eventhandler onsubmit kannst du eine Javascript-Funktion aufrufen, die schon _vor_ dem Absenden die Eingaben überprüft und im Fehlerfall das Abesenden unterdrückt, indem sie false zurückgibt. Ein Hinweis an den Benutzer, z.B. mit alert(), wäre natürlich sinnvoll.
Doch das alles ist witzlos, wenn der Besucher Javascript deaktiviert. Auch wenn das nur ein geringer Prozentsatz ist, solltest du das nicht übersehen, und deshalb kommt doch wieder der erste Absatz (serverseitige Prüfung) zum Tragen.
So long,
Martin
PS: Die Frage passt ja in einige Themengebiete, z.B. HTML/XHTML, eventuell sogar PROGRAMMIERTECHNIK, aber sicher nicht HTTP.
Hallo,
danke für die Flotte antwort.
Ich habe mich beim Bereich leicht verklickt... mein Fehler
Die JS-Lösung scheint mir ganz brauchbar. Also hab ich mir flott ne Funktion dazu gebastelt. Leider ist bisher der Ablauf etwas mies:
<form name="anmeldung" method="post" action="somaanmeldung.php" onsubmit="checkform();">
Checkform prüft die Eingaben - und gibt je ein Alert aus falls eine eingabe Fehlt bzw falsch ist.
Das Problem hier ist das er danach dennoch gleich das Submit ausführt und ich trotz "Fehlern" auf die Folgeseite komme...
Wie kann ich die Funktion sinnvoll einbinden? - im Grunde könnte die Prüffunktion das Submit auslösen... hmm ...
Hallo,
D.h. man kann das Formular erst absenden wenn die bestimmten Felder ausgefüllt sind.
Es gibt keine zuverlässige Lösung.
Grundsätzlich muss das Script, das die Formulardaten entgegennimmt und verarbeitet, mit fehlerhaften oder fehlenden Angaben klarkommen. Das könnte beispielsweise heißen, dass das Script die EIngaben prüft und im Fehlerfall das Formular mit den eingegebenen Daten wieder als Antwort zurückschickt (Suchwort: Affenformular).
Aber eine Vorab-Prüfung kannst du natürlich auch clientseitig machen. Über den Eventhandler onsubmit kannst du eine Javascript-Funktion aufrufen, die schon _vor_ dem Absenden die Eingaben überprüft und im Fehlerfall das Abesenden unterdrückt, indem sie false zurückgibt. Ein Hinweis an den Benutzer, z.B. mit alert(), wäre natürlich sinnvoll.
Doch das alles ist witzlos, wenn der Besucher Javascript deaktiviert. Auch wenn das nur ein geringer Prozentsatz ist, solltest du das nicht übersehen, und deshalb kommt doch wieder der erste Absatz (serverseitige Prüfung) zum Tragen.So long,
MartinPS: Die Frage passt ja in einige Themengebiete, z.B. HTML/XHTML, eventuell sogar PROGRAMMIERTECHNIK, aber sicher nicht HTTP.
Hi,
Die JS-Lösung scheint mir ganz brauchbar. Also hab ich mir flott ne Funktion dazu gebastelt. Leider ist bisher der Ablauf etwas mies:
<form name="anmeldung" method="post" action="somaanmeldung.php" onsubmit="checkform();">
Checkform prüft die Eingaben - und gibt je ein Alert aus falls eine eingabe Fehlt bzw falsch ist. Das Problem hier ist das er danach dennoch gleich das Submit ausführt und ich trotz "Fehlern" auf die Folgeseite komme...
dann hast du meinen Hinweis überlesen, dass der onsubmit-Handler im Erfolgsfall true und im Fehlerfall false zurückgeben möge, was den Submit-Vorgang abbrechen würde.
Wie kann ich die Funktion sinnvoll einbinden? - im Grunde könnte die Prüffunktion das Submit auslösen... hmm ...
Das wäre wieder schlecht für die wenigen, die kein JS ausführen lassen. Die könnten dann nämlich das Formular überhaupt nicht absenden.
Ciao,
Martin
PS: Wie mögen TOFU hier nicht so gern. ;-)