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.
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.
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
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…