0 votes
in SoSci Survey (dt.) by s136815 (550 points)

Hallo zusammen,
mit folgendem Java Script habe ich eingestellt, dass wenn ein bestimmtes Antwortitem der Frage MI67 (Variable MI67 10) angeklickt wird, die nachfolgende Frage MI68 auf der gleichen Seite eingeblendet wird. Bei jedem angeklickten Antwortitem soll der Befragte auch noch eine offene Eingabe machen. Wenn nun der Befragte gleich die offene Eingabe bei Item MI67 10 eingibt (also die Variable MI67 10a) wird zwar der Haken automatisch bei dem Item MI67 gesetzt, aber die nachgeschaltete Frage nicht eingeblendet. Das erfolgt leider nur, wenn der Befragte selbst das Item MI67 anklickt, also die Variable MI67 10.
Schreibe ich die Variable MI67 10a ins Java Script, wird leider die nachfolgende Frage nicht eingeblendet, auch wenn vom Befragte ausschließlich die offene Eingabe bei Item MI67 erfolgt.
Wie ist es möglich, das immer die nachgeschaltete Frage MI68 auf der gleichen Seite eingeblendet wird, sobald der Befragte eine der beiden Variablen MI67 10 oder MI67 10a anklickt, bzw. einschreibt?
Hier noch das Java Script und die Variablenliste:

<script type="text/javascript">
<!--
var optionA = document.getElementById("MI67_01a");  // Option "1"
var optionB = document.getElementById("MI67_02a");  // Option "2"
var optionC = document.getElementById("MI67_03a");  // Option "3"
var optionD = document.getElementById("MI67_04a");  // Option "4"
var optionE = document.getElementById("MI67_05a");  // Option "5"
var optionF = document.getElementById("MI67_06a");  // Option "6"
var optionG = document.getElementById("MI67_07a");  // Option "7"
var optionH = document.getElementById("MI67_08a");  // Option "8"
var optionI = document.getElementById("MI67_09a");  // Option "9"
var optionJ = document.getElementById("MI67_10");  // Option "Sonstiges"
var frage = document.getElementById("MI68_qst");  // HTML-ID der Texteingabe
 
function toogle() {
    if ((optionJ.checked)) {
          frage.style.display = "";
  } else {
       frage.style.display = "none";
  }
}
 
SoSciTools.attachEvent(optionA, "click", toogle);
SoSciTools.attachEvent(optionB, "click", toogle);
SoSciTools.attachEvent(optionC, "click", toogle);
SoSciTools.attachEvent(optionD, "click", toogle);
SoSciTools.attachEvent(optionE, "click", toogle);
SoSciTools.attachEvent(optionF, "click", toogle);
SoSciTools.attachEvent(optionG, "click", toogle);
SoSciTools.attachEvent(optionH, "click", toogle);
SoSciTools.attachEvent(optionI, "click", toogle);
SoSciTools.attachEvent(optionJ, "click", toogle);
 
toogle();
// -->
</script>

MI67undefined
M Org Finanz F3: Ausweichoption (negativ) oder Anzahl ausgewählter Optionen

Ganze Zahl

MI67_01undefined
Mit Fördermitteln/Bildungszugaben/etc. der Region (Städteregion, Kreis, Stadt, Kommune etc.) zu

MI67_02undefined
Mit Fördermitteln der Landesarbeitsgemeinschaft Arbeit Bildung Kultur NRW e.V. (LAG) zu

MI67_03undefined
Durch Spenden von Betrieben, die ihre Schüler*innen zu uns schicken zu

MI67_04undefined
Aus dem Gesamtbudget unseres Berufskollegs (vom Schulträger) zu

MI67_05undefined
Durch Spenden (lokaler Unternehmen, Banken, etc.) zu

MI67_06undefined
Mit Zuwendungen des Fördervereins zu

MI67_07undefined
Durch die Schülerinnen und Schüler zu

MI67_08undefined
Mit Fördermitteln des Bundes zu

MI67_09undefined
Mit Fördermitteln des Landes zu

MI67_10undefined
Mit sonstigen Mitteln zu

1 = nicht gewählt
2 = ausgewählt

MI67_01aundefined
Mit Fördermitteln/Bildungszugaben/etc. der Region (Städteregion, Kreis, Stadt, Kommune etc.) zu (offene Eingabe)

MI67_02aundefined
Mit Fördermitteln der Landesarbeitsgemeinschaft Arbeit Bildung Kultur NRW e.V. (LAG) zu (offene Eingabe)

MI67_03aundefined
Durch Spenden von Betrieben, die ihre Schüler*innen zu uns schicken zu (offene Eingabe)

MI67_04aundefined
Aus dem Gesamtbudget unseres Berufskollegs (vom Schulträger) zu (offene Eingabe)

MI67_05aundefined
Durch Spenden (lokaler Unternehmen, Banken, etc.) zu (offene Eingabe)

MI67_06aundefined
Mit Zuwendungen des Fördervereins zu (offene Eingabe)

MI67_07aundefined
Durch die Schülerinnen und Schüler zu (offene Eingabe)

MI67_08aundefined
Mit Fördermitteln des Bundes zu (offene Eingabe)

MI67_09aundefined
Mit Fördermitteln des Landes zu (offene Eingabe)

MI67_10aundefined
Mit sonstigen Mitteln zu (offene Eingabe)

Offene Eingabe (Ganze Zahl)

Vielen Dank im Voraus und viele Grüße

1 Answer

0 votes
by SoSci Survey (330k points)
selected by s136815
 
Best answer

Ergänzen Sie doch bitte testweise noch folgenden JavaScript-Code:

document.getElementById("MI67_10a", "keyup", function() {
  window.setTimeout(function() {
    toogle();
  }, 50);
});

Damit kann der Fragebogen erstmal das Kreuzchen setzen, wenn eine Taste gedrückt wird - und dann wird die Funktion toogle() aufgerufen.

by s136815 (550 points)
Habe die vorgeschlagene JavaScript-Code-Ergänzung unter den bisherigen JavaScript-Code gesetzt.
Funktioniert leider immer noch nicht wie gewünscht. Es hat sich nichts verändert, bis auf den Text der JavaScript-Code Ergänzung, der nun bei einem Testlauf am Ende der Fragebogenseite angezeigt wird und zwar unabhängig davon, ob das Item MI67 10 angeklickt wurde oder nicht.
Muss die Java-Script-Code-Ergänzung vielleicht irgendwo in den bestehenden JavaCode eingeschrieben werden?
by SoSci Survey (330k points)
> bis auf den Text der JavaScript-Code Ergänzung, der nun bei einem Testlauf am Ende der Fragebogenseite angezeigt wird

Sind Sie sicher, dass Sie das Script innerhalb des <script>-Tags ergänzt haben? Angezeigt werden dürfte der Code nicht.
by s136815 (550 points)
edited by SoSci Survey
habe jetzt folgendes Java-Script:

<script type="text/javascript">
<!--
var optionJ = document.getElementById("MI67_10");  // Option "Sonstiges"
var frage = document.getElementById("MI68_qst");  // HTML-ID der Texteingabe
 
function toogle() {
    if ((optionJ.checked)) {
          frage.style.display = "";
  } else {
       frage.style.display = "none";
  }
}
 
SoSciTools.attachEvent(optionJ, "click", toogle);

document.getElementById("MI67_10a").addEventListener("keyup", function() {
  window.setTimeout(function() {
    toogle();
  }, 50);
});

toogle();
// -->
</script>

Aber das führt leider zu keiner Veränderung.
by SoSci Survey (330k points)
Und dieser Code ist als Text mit der Darstellung "HTML-Code" gespeichert? Ich gehe davon aus, dass das der Fall ist, denn sonst hätte der Code überhaupt keinen Einfluss auf die Anzeige der Frage MI68. Allerdings sehe ich keinen Grund, weshalb der Code dann auf der Fragebogen-Seite angezeigt werden sollte...

Für eine genauere Analyse würde ich Sie bitten, einen Pretest-Link zu posten, welcher direkt (!) auf die betroffene Fragebogen-Seite verweist.
by s136815 (550 points)
Sorry, der Code wird jetzt nicht mehr auf der Fragebogenseite angezeigt. Aber die Funktion, dass beim Ausfüllen des offenen Textes MI67 10a auch die nachfolgende Frage 68 eingeblendet wird, erfolgt leider immer noch nicht.
Hier der Pretestlink direkt auf Seite 39 des Fragebogens:
https://www.soscisurvey.de/kult-aesth-BA-BK/?act=NrHVh0GJQRnwySW4kPgbTfUM
Vielen Dank im Voraus.
by SoSci Survey (330k points)
Danke für den Pretest-Link. Ich ging bisher davon aus, dass es sich um eine Einfach-Auswahl handeln würde, nicht um eine Mehrfachauswahl. Die Zeilen mit optionA bis optionI können Sie sich demnach sparen - nur optionJ ist dann relevant :)

Und dann war da oben noch ein Fehler im zusätzlichen Code. Hiermit korrigiert.
by s136815 (550 points)
Super, vielen Dank. Habe die Seite dann gleich mal getestet und dabei festgestellt, dass die Eingabe des offenen Textes des Antwortitems MI67 10 (irgend eine Zahl kleiner/gleich 100) noch immer nicht zum Erscheinen der nachgeschalteten Frage MI68 führt, sondern weiter nur wenn ich dieses Item direkt anklicke. Wenn der Befragt nun nicht erst dieses Item anklickt, sondern direkt eine Prozenteingabe macht für dieses Item, erscheint die nachgeschaltete Frage mit der Abfrage nach den sonstigen genutzten Fördermöglichkeiten eben nicht - und diese Information ist schon relevant für die Studie. Wie kann diese Möglichkeit realisiert werden?
Für Ihre Bemühungen danke ich Ihnen im Voraus. Viele Grüße
by SoSci Survey (330k points)
Der Pretest-Link scheint nicht mehr auf die passende Seite zu verweisen, evtl. wurde eine Seite gelöscht oder eingefügt. Wenn Sie einen aktualisierten Pretest-Link posten, sehe ich es mir gerne nochmal an. Im Test auf Ihrer Seite (man kann im Browser temporär Code ergänzen) hatte der Code funktioniert.
by s136815 (550 points)
Ja, sorry, habe in der Zwischenzeit eine neue Seite eingefügt. Hier der aktualisierte Pretest-Link:
https://www.soscisurvey.de/kult-aesth-BA-BK/?act=OHMMU76wJHkcau4eQiduF81L
Viele Grüße und vielen Dank im Voraus.
by SoSci Survey (330k points)
Sie verwenden auf der Seite - soweit ich sehe - noch nicht den korrigierten Code mit addEventListener(), was in meiner Antwort ursprünglich fehlte und was ich dann nachträglich korrigiert hatte (s. mein vorletzter Kommentar). Dort sollte u.a. stehen:

document.getElementById("MI67_10a").addEventListener("keyup", function() {
by s136815 (550 points)
Vielen Dank, jetzt klappt es.
Viele Grüße

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

...