Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Hallo,
ich möchte eine Frage bei der Auswahl von zwei Antworten und einer Ausweichoption sofort einblenden. Mein Code (ich füge ihn unten ein) funktioniert für die zwei Antworten und an anderen Stellen im Fragebogen gut, aber sobald ich die Ausweichption einfüge, ist die Frage beim Testen sofort eingeblendet. Ich bekomme keine Fehlermeldung, auch die Konsole kann nicht weiterhelfen. Ich habe in anderen Fragen die Bitte um einen Pretest-Link gesehen, das kann ich für diesen vertraulichen Fragebogen leider nicht einfach machen, gibt es vielleicht noch eine andere Lösung?

Ich nehme an, es liegt daran, dass die Variablenbezeichnung nicht stimmt, da es funktioniert, sobald ich die Ausweichoption durch eine "normale" Antwort ersetze. Könnte das sein? Ist es möglich die Ausweichoption einzublenden? Im Variablen-Verzeichnis ist sie als -1 definiert.
Ich habe es auch bereits mit -1, -01 und 06a versucht, nichts davon hat funktioniert.

B21 ist eine Auswahlfrage mit einer Ausweichoption, B22 eine offene Textfrage.

Da ich bereits auf mehren Seiten Fragen einblende, habe ich die Optionen etc. durchnummeriert, auf den anderen Seiten hat es mit 1 und 2 gut geklappt.

Der Code ist:

<script type="text/javascript">
<!--
var optionA3 = document.getElementById("BE21_01a");  // Auswahloption "1"
var optionB3 = document.getElementById("BE21_02a");  // Option "2"
var optionC3 = document.getElementById("BE21_03a");  // Option "3"
var optionD3 = document.getElementById("BE21_04a");  // Option "4"
var optionE3 = document.getElementById("BE21_05a");  // Option "5"
var optionF3 = document.getElementById("BE21_-01a");  // Option "6"
var frage3 = document.getElementById("BE22_qst");  // HTML-ID der Texteingabe
 
function toogle3() {
  // Die zwei Pipes (||) sind ein logisches "Oder"
  // Die Bedingung prüft also: Ist Option A ausgewählt oder ist B ausgewählt?
if ((optionD3.checked) || (optionE3.checked) || (optionF3.checked)) {
    // Wurde "4" "5" "6"  ausgewählt, dann wird die Frage angezeigt
    // Keine Angabe ("") verwendet die Standard-Einstellung (normal anzeigen)
    frage3.style.display = "";
  } else {
    // Mit der Anzeigeoption "none" wird die Frage ausgeblendet
    frage3.style.display = "none";
  }
}
 
// Die Funktion soll jedesmal ausgeführt werden, wenn eine der drei Optionen angeklickt wird
SoSciTools.attachEvent(optionA3, "click", toogle3);
SoSciTools.attachEvent(optionB3, "click", toogle3);
SoSciTools.attachEvent(optionC3, "click", toogle3);
SoSciTools.attachEvent(optionD3, "click", toogle3);
SoSciTools.attachEvent(optionE3, "click", toogle3);
SoSciTools.attachEvent(optionF3, "click", toogle3);
 
// Und jetzt gleich soll sie auch ausgeführt werden, damit die Anzeige zu Beginn korrekt ist
// (z.B. ausblenden der Texteingabe zu Beginn)
toogle3();
// -->
</script>
in SoSci Survey (dt.) by s106322 (120 points)
edited by SoSci Survey

1 Answer

0 votes

sobald ich die Ausweichption einfüge, ist die Frage beim Testen sofort eingeblendet

Die korrekte HTML-ID der Ausweichoption finden Sie, wenn Sie im Browser die Entwickler-Tools aktivieren (Firefox oder Chrome, schwieriger ist es in Edge und Internet Explorer) und im "Inspektor" die Funktion verwenden, dass man ein Element des Fragebogens anklicken kann, um die HTML-Code dafür zu sehen. Die Kennung "BE21_-01a" scheint mir eher ungewöhnlich.

Welchen Fragetyp verwenden Sie denn?

Wenn die HTML-ID falsch sein sollte, dann würde ich in der Fehlerkonsole des Browsers zumindest eine Warnung erwarten, dass die Eigenschaft "checked" nicht vorhanden sei.

Wenn das Problem auch damit nicht gelöst wird, dann packen Sie ein wenig Debugging-Code in Ihren JavaScript-Code, z.B. nach Definition der Variablen folgendes:

...
var optionE3 = document.getElementById("BE21_05a");  // Option "5"
var optionF3 = document.getElementById("BE21_-01a");  // Option "6"
var frage3 = document.getElementById("BE22_qst");  // HTML-ID der Texteingabe
console.log(optionA3);
console.log(optionB3);
console.log(optionC3);
console.log(optionD3);
console.log(optionE3);
console.log(optionF3);
console.log(frage3);
...

Dann sollten Sie zumindest in der Browser-Konsole sehen, welche Elemente korrekt erkannt wurden.

by SoSci Survey (250k points)
...