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 habe folgendes Problem und wäre sehr dankbar für eine Rückmeldung.
Der Fragebogen enthält in etwa folgende Auswahlfrage:

Wie viele Personen arbeiten in Ihrem Unternehmen.
Es arbeiten [Eingabefeld] Personen dort.
Ich arbeite alleine.

Das Eingabefeld wird vorher mit prepare_input vorbereitet und über

<script type="text/javascript">
new S2Selection.LinkSelect2Text("FRAGE_01a", "FELD");
</script>

wird das die Auswahl vorne getroffen, sobald etwas in das Feld eingetragen wird, das funktioniert völlig problemlos.

Nun gibt es Fragen, die erscheinen sollen, wenn es ein Unternehmen mit mehreren Personen gibt.

Diese werden über Javascript gefiltert. Dieser Filter funktioniert auch völlig problemlos, solange das Feld "händisch" angeklickt wird. Wird es dagegen automatisch über "new S2Selection.LinkSelect2Text..." ausgefüllt, funktioniert der Filter nicht. Das gleiche Problem ergibt sich ebenfalls, wenn es kein eigenes Eingabefeld ist, sondern als Einmgabefeld in der Frage erfragt wird.

Wir haben solche Fragen an mehren Stellen im Fragebogen und wären sehr dankbar, wenn es eine Lösung geben würde.

Bei Mehrfachantworten tritt das gleiche Problem auf.

Herzlichen Dank und viele Grüße

in SoSci Survey (dt.) by s027974 (135 points)
edited by SoSci Survey
Wenn Sie auch den zwiten Code posten - am besten mit den Original-Kennungen - dann denke ich gerne über mögliche Lösungen nach. Eventuell müssen wir die Funktion S2Selection.LinkSelect2Text() dahingehend ändern, dass sie das "click" Event auslöst.
Herzlichen Dank für die Unterstützung! Eigentlich sollte die Befragung heute gestartet werden, dass es nicht funktioniert, habe ich beim letzten Testen bemerkt.

Hier der Code einer Mehrfachantwort:

<script type="text/javascript">
new S2Selection.LinkSelect2Text("MI05_01", "MI18_01");
new S2Selection.LinkSelect2Text("MI05_02", "MI18_02");
new S2Selection.LinkSelect2Text("MI05_03", "MI18_03");
new S2Selection.LinkSelect2Text("MI05_04", "MI18_04");
new S2Selection.LinkSelect2Text("MI05_05", "MI18_05");
new S2Selection.LinkSelect2Text("MI05_06", "MI18_06");
new S2Selection.LinkSelect2Text("MI05_07", "MI18_07");
new S2Selection.LinkSelect2Text("MI05_08", "MI18_08");
new S2Selection.LinkSelect2Text("MI05_09", "MI18_09");
new S2Selection.LinkSelect2Text("MI05_10", "MI18_10");
</script>


<script type="text/javascript">
<!--
var optionA = document.getElementById("MI05_01");
var optionB = document.getElementById("MI05_02");
var optionC = document.getElementById("MI05_03");
var optionD = document.getElementById("MI05_04");
var optionE = document.getElementById("MI05_05");
var optionF = document.getElementById("MI05_06");
var optionG = document.getElementById("MI05_07");
var optionH = document.getElementById("MI05_08");

var optionAt = document.getElementById("MI18_01");
var optionBt = document.getElementById("MI18_02");
var optionCt = document.getElementById("MI18_03");
var optionDt = document.getElementById("MI18_04");
var optionEt = document.getElementById("MI18_05");
var optionFt = document.getElementById("MI18_06");
var optionGt = document.getElementById("MI18_07");
var optionHt = document.getElementById("MI18_08");

var frage_studium = document.getElementById("was_wo");
var frage_ausbil = document.getElementById("MI07_qst");

// HTML-ID der Frage SD08
function studium() {
if (((optionE.checked) || (optionF.checked) || (optionG.checked) || (optionH.checked)) || ((optionEt>0) || (optionFt>0) || (optionGt>0) || (optionHt>0))) {
frage_studium.style.display = "";
} else {
frage_studium.style.display = "none";
}
}

SoSciTools.attachEvent(optionE, "click", studium);
SoSciTools.attachEvent(optionF, "click", studium);
SoSciTools.attachEvent(optionG, "click", studium);
SoSciTools.attachEvent(optionH, "click", studium);


SoSciTools.attachEvent(optionEt, "click", studium);
SoSciTools.attachEvent(optionFt, "click", studium);
SoSciTools.attachEvent(optionGt, "click", studium);
SoSciTools.attachEvent(optionHt, "click", studium);

studium();

function ausbil() {
if ((optionB.checked) || (optionC.checked) || (optionD.checked) ) {
frage_ausbil.style.display = "";
} else {
frage_ausbil.style.display = "none";
}
}

SoSciTools.attachEvent(optionB, "click", ausbil);
SoSciTools.attachEvent(optionC, "click", ausbil);
SoSciTools.attachEvent(optionD, "click", ausbil);


SoSciTools.attachEvent(optionBt, "click", ausbil);
SoSciTools.attachEvent(optionCt, "click", ausbil);
SoSciTools.attachEvent(optionDt, "click", ausbil);

ausbil();

</script>
Es wäre sicherlich die beste Lösung, wenn die Funktion
S2Selection.LinkSelect2Text() das "click" Event auslösen würde. Ist eine solche Änderung möglich?
Herzlichen Dank und viele Grüße

1 Answer

0 votes

Wir haben die Funktion S2Selection.LinkSelect2Text() dahingehend angepasst, dass sie das "click" Event auslöst - damit sollte Ihr Script nun korrekt funktionieren.

by SoSci Survey (76.3k points)
Vielen herzlichen Dank für die Unterstützung.
Aber leider funktioniert es nicht.
In der Mehrfachantwort erscheint vorne der Haken, wenn eine Zahl eingegeben wird, aber die gefilterten Fragen ploppen nicht auf. Das funktioniert nur wenn ich denn Haken "händisch" setzte oder ein zweites mal in das Kästchen für die Zahl klicke.
Ich habe auch versucht die Position des Codes mit der Funktion new S2Selection.LinkSelect2Text
und des Javascript-Filters zu ändern. Leider ohne Erfolg.
Hätten Sie vielleicht einen Pretest-Link direkt (!) zur betroffenen Seite? Dann könnte ich mir das einmal genauer ansehen.
Herzlichen Dank!

Hier der Link zur betreffenden Seite.
https://www.soscisurvey.de/gruendung-befragung/?act=Wo1WXZnFUIT0TI7tAZ1MOoBq

Bei der ersten Frage  (MI01) bitte anwählen:
 "Nein, ich habe mit anderen gemeinsam gegründet."

Dann ist es die kombinierte Frage MI05 und MI18, wenn man duale Ausbildung anwählt bzw. die Personen einträgt, sollen die Fragen zur Art gestellt werden, wenn man einen universitären Abschluss anwählt, entsprechend die Fragen zum Fach, Ort etc.
Interessant ... wenn man bei der Dualen Ausbildung hinten erst etwas einträgt und es dann entfernt, dann klappt es mit dem Einblenden ;) Da scheint irgendwas mit der Abfolge aus anwählen und "click"-Event noch nicht ganz zu funktionieren...
Ich muss mir das nochmal genauer ansehen. Derweilen habe ich einen kurzfristigen Workaround für Sie:

function ausbil() {
  window.setTimeout(function() {
    if ((optionB.checked) || (optionC.checked) || (optionD.checked) ) {
      frage_ausbil.style.display = "";
    } else {
      frage_ausbil.style.display = "none";
    }
  }, 50);
}

Hier wird die Prüfung, ob die Option gewählt ist, um 50ms verzögert. Ich vermute stark, dass es damit erst einmal funktioniert.
Vielen Dank! Es klappt!
...