HTML Formular mit Radiobuttons: Feedback bei fehlenden Angaben

Liebes Forum,

ich habe ein Problem mit HTML Formularen:

Ich möchte den TeilnehmerInnen an einer Umfrage per Javascript ein Feedback geben, falls sie vergessen haben Angaben zu machen. Falls die Teilnehmenden die Angaben absichtlich leer gelassen haben, sollen Sie in der Lage sein, das Formular unvollständig abzusenden, wenn sie die Angaben jedoch tatsächlich vergessen haben, sollen sie die Möglichkeit haben, die fehlenden Angaben zu ergänzen.

Das Formular besteht aus mehreren Blöcken von Radiobuttons und die HTML sieht gerade so aus:

[HTML]

Geben Sie bitte für jede Aussage an, wie sehr Sie ihr zustimmen. Bitte lassen Sie keine Frage aus. 1 = völlige Ablehnung und 7 = völlige Zustimmung.
völlige völlige
Ablehnung Zustimmung

Question 1 1 2 3 4 5 6 7

Question 2 1 2 3 4 5 6 7

Question 3 1 2 3 4 5 6 7



[/HTML]

Mir wurde in einem anderen Forum (ich poste nun hier, weil dort niemand mehr geantwortet hat) geraten eine javascript Funktion „validateForm“ zu schreiben, die beim submit ausgeführt wird. Diese Funktion soll also:
[ol]
[li]Prüfen, ob alle Radiobutton-Gruppen beantwortet wurden.[/li][li]Falls alle beantwortet wurden, soll das Formular gepostet werden und zur nächsten Seite gegangen werden.[/li][li]Falls jedoch nicht alle Fragen beantwortet wurden soll gefragt werden: „Sie haben nicht alle Fragen auf dieser Seite beantwortet, möchten Sie fortfahren, ohne diese Fragen zu bearbeiten?“[/li][li]Wenn der oder die UserIn nun „Ja“ klickt soll die Seite unverändert abgeschickt werden und bei „Nein“ soll, sie nicht abgeschickt werden (sie kann dann weiter bearbeitet werden).[/li][/ol]
Dafür wurden verschiedene Vorschläge gemacht, die ich aber nicht verstanden habe. Hier einer davon:
[HTML] $(‚YOUR FORM‘).on(‚submit‘,function(){
var isChecked = validateForm();
if(!isChecked){
confirm(‚Please note that you didn’t answer all of the questions on this page‘);
}
});
function validateForm() {
var isValid = true;
$(‚.form-field‘).each(function() {
if ( $(this).val() === ‚‘ )
isValid = false;
});
return isValid;
}[/HTML]
(mehr Vorschläge sind hier zu finden: http://stackoverflow.com/questions/27544922/html-form-with-feedback-if-user-didnt-answer-all-questions )

Ich verstehe aber, wie gesagt, nicht wie und wo ich diesen Code einbauen soll. Kann mir jemand von euch/Ihnen weiterhelfen? Am hilfreichsten wäre es, wenn ihr in eurer Antwort den Code, den ich oben gepostet habe verwendet.

Danke im Voraus!
Gruß Benjamin

Eine Prüfung per JavaScript ist ja ganz fein, aber bitte die serverseitige Prüfung nachher nicht vernachlässigen.

Dein oben genannter Vorschlag wäre ein Lösung mit jQuery. jQuery musst du erst in deinem Dokumt einbinden, bevor du es nutzen kannst. (Dazu mal ein Link http://www.html-seminar.de/jquery-tutorial.htm ) Der Vorschlag von oben prüft alle Felder daraufhin ob sie leere Strings enthalten,und gibt dann ein boolschen Wert zurück. Wenn dies der Fall ist bekommt der Benutzer eine Nachricht, das einige Felder noch leer sind. Aufgerufen wird die Prüfung dann beim Klicken des Submit-Buttons(on.submit).

Danke Nitamud! Das hat schon geholfen. Ich habe jQuery heruntergeladen und lokal im selben Verzeichnis wie die html abgespeichert. Den Quellcode habe ich abgeändert, aber es erscheint kein Hinweis, wenn ich auf „Weiter“ klicke.

Was könnte denn noch falsch sein?

Hier der komplette HTML Quellcode:

[HTML]body, table, {
font: 14pt Arial; color: #000040;
background: #FFFFF; margin: 10px;
}

input, textarea, select, submit {
font: 14pt Arial;
color: #004000;
margin-top: .33em}

input.radio, input.checkbox {
height:1em; width:1em}

a, a:active, a:visited {color: #000040; text-decoration: underline}
a:hover {color: #004000}

ASI22
Geben Sie bitte für jede Aussage an, wie sehr Sie ihr zustimmen. Bitte lassen Sie keine Frage aus. 1 = völlige Ablehnung und 7 = völlige Zustimmung.
völlige völlige
Ablehnung Zustimmung

Question 1 1 2 3 4 5 6 7

Question 2 1 2 3 4 5 6 7

Question 3 1 2 3 4 5 6 7



[/HTML]

Beheb erstmal die Fehler im Html: http://validator.w3.org/#validate_by_input
Zudem solltest du dir überlegen ob die tabellarische Form, die richtige Umsetzung ist.

Es handelt sich hier schließlich nicht um Inhalte, die man normalerweise tabellarisch ausgibt.
Eine Formatierung kann man dann per CSS erreichen. Zudem benutzt du einige veraltete Elemente
wie die aligns im HTML-Code. Probier das durch die im Validator gezeigten Fehler zu beheben,
bevor du dich an die Auswertung machst :slight_smile:

Sorry, aber ich bin leider Anfänger. Ich weiß nicht wie ich es mit CSS bewerkstelligen soll. Ist das nötig? Es geht mir hauptsächlich um die Rückmeldung per jQuery. Könntest du evtl. ein Minimalbeispiel bringen? Ich komme mit dem Validator auch nicht zurecht - ja, da werden einige Fehler angezeigt, aber ich weiß nicht wie ich die behebe…

Mithilfe von Markup Validation Service bin ich jetzt auf dem folgenden Stand:
[HTML]

ASI22
Geben Sie bitte für jede Aussage an, wie sehr Sie ihr zustimmen. Bitte lassen Sie keine Frage aus. 1 = völlige Ablehnung und 7 = völlige Zustimmung.
völlige völlige
Ablehnung Zustimmung

Question 1 1 2 3 4 5 6 7

Question 2 1 2 3 4 5 6 7

Question 3 1 2 3 4 5 6 7



[/HTML]

Allerdings funktioniert das javascript immer noch nicht.