Hallo,
ich habe DropDown Fragen die mi JA oder NEIN beantwortet werden können. Hier wird via Javascript geprüft, was angeklikt wurde:
<script type="text/javascript">
function toogle() {
var dropdown = document.getElementById("KO13"); // Das Eingabefeld der Frage
var frage = document.getElementById("KO14_qst"); // Die Frage , die ein-/auszublenden ist
if (dropdown.value == "1") { // Hier den Wert (Antwortcode) eintragen, bei dem das zweite Dropdown eingeblendet werden soll
frage.style.display = "";
}
else if (dropdown.value =="-9") {
return;
}
else {
frage.style.display = "none";
}
}
var dropdown = document.getElementById("KO13"); // Das Eingabefeld der Frage
SoSciTools.attachEvent(dropdown, "change", toogle); // Bei einer Änderung der Auswahl die Anzeige anpassen
SoSciTools.attachEvent(dropdown, "click", toogle); // Auch beim Klick prüfen - sonst wird die Änderung evtl. erst beim Verlassen des Dropdowns wirksam
toogle(); // Und zu Beginn auch die korrekte Anzeige sicherstellen
</script>
Die Folgefrage wird ebenfalls mit Javascript versteckt:
<script type="text/javascript">
function hide() {
var q = document.getElementById("KO14_qst");
q.style.display = "none";
}
hide();
</script>
Jetzt soll geprüft werden ob eine Antwort gegeben wurde:
$missing01 = getItems('KO14', '==', 1);
$missing02 = getItems('KO06', '==', 1);
$missing03 = getItems('KO10', '==', 1);
$missing04 = getItems('KO12', '==', 1);
$missing05 = getItems('KO08', '==', 1);
$missing = array_intersect($missing01, $missing02, $missing03, $missing04, $missing05);
// Überprüfung, ob ein Item unbeantwortet blieb
if (count($missing) > 0) {
// Die fehlenden Items hervorheben
foreach ($missing as $item) {
markFail(id('missing', $item));
}
// Meldung anzeigen und Seite wiederholen
repeatPage('CO03');
}
statt.
Leider kommt man auf die nächste Fragebogenseite, wenn man JA angeklickt hat ABER kein Wert in der Skala eingetragen wurde.
Wo liegt das Problem? Ich darf die Frage nicht mit ja beantworten können, aber keinen Wert übermitteln dürfen.
EDIT 04.10.
EDIT 5.4.2021