0 votes
in SoSci Survey (dt.) by s131059 (165 points)

Hallo,

auf einer Fragebogenseite müssen die Teilnehmer innerhalb einer gewissen Zeit Aufgaben lösen. Ich habe da auch bereits einen Timer, wenn dieser abgelaufen ist, werden sie automatisch zur nächsten Seite weiter geleitet.
Ich würde jetzt gerne noch einstellten, dass wenn die Teilnehmer vor Ablauf der Zeit alle Aufgaben gelöst haben (egal ob sie die Antworten richtig oder falsch beantwortet haben), den "weiter" Button dann angezeigt bekommen. Wie kann ich das einstellen? Und auch die Zeit gespeichert wird, zu der sie fertig waren.
Ist das möglich?

Liebe Grüße und vielen Dank schonmal!

1 Answer

0 votes
by SoSci Survey (302k points)

Die Bearbeitungszeit bis zum "Weiter"-Klick bekommen Sie automatisch im Datensatz. Für die exakte Zeit zwischen Laden der Seite und letztem Klick müssten Sie mittels JavaScript messen.

Für das Ausblenden der Weiter-Knopfes müssten Sie ebenfalls JavaScript bemühen. Und zwar müsste eine Funktion entweder bei jedem Klick auf der Seite oder regelmäßig (z.B. alle 250ms) alle Items durchgehen (in einer FOR-Schleife) und prüfen, ob überall eine antwort vorliegt. Wenn ja, dann würde der Weiter-Knopf angezeigt. Sonst nicht.

Ihr Kombination mit einem Timer würde es nahelegen, nur auf Klicks zu reagieren. Details gerne auf Nachfrage. Um ein wenig Programmieren inkl. Probieren werden Sie allerdings nicht umhin kommen.

by s131059 (165 points)
Dankeschön für die Antwort.
Ich würde es gerne so einstellen, dass nur auf Klicks reagiert wird. Dabei habe ich mich an einer Frage orientiert, wobei es sich um ein ähnliches Problem handelt, wo der "Weiter Button" erst nach einer gewissen Anzahl an Wörtern anzeigt wird. https://support.soscisurvey.de/?qa=9703/weiter-button-erst-anzeigen-mindestanzahl-wortern-erfullt

Hierbei habe ich versucht, auf der folgenden Seite: https://www.soscisurvey.de/help/doku.php/de:create:questions:text#woerter_zaehlen den HTML-Code „Zeichen zählen“ zu verwenden. Und dort den folgenden HTML Code einzubauen:

function CounterCheck() {
  if ( $answered++<= 95)
    return SoSciTools.submitButtonsHide();
  else
    return SoSciTools.submitButtonsDisplay();
}

Mein bisher „versuchter“ HTML Code sieht wie folgt aus. Leider funktioniert dieser nicht so wie ich es gehofft hatte:

<script type="text/javascript">
<!--
 
function addCounter($answer) {
  if (limit) {
    limit = parseInt(limit);
  }

 if ($answer > 0) {
    $answered++;
  }
  // Funktion zum Zählen und Anzeigen des Wertes
  function refresh() {
    var s = input.value.replace(/\r\n/g, "\r").replace(/\r/g, "\n");
    var res = s.length;
    if (limit) {
      res = limit - res;
    }
    // Inhalt des Anzeigeelements löschen
    while (display.lastChild) {
      display.removeChild(display.lastChild);
    }

function CounterCheck() {
  if ( $answered++<= 95)
    return SoSciTools.submitButtonsHide();
  else
    return SoSciTools.submitButtonsDisplay();
}

  // Bei jeder Änderung des Textfelds aktualisieren
  SoSciTools.attachEvent(input, ["change","keyup"], refresh);
  // Beim Laden aktualisieren
  refresh();
}
 
 
// -->
</script>

Denn bei dem „Zeichen Zählen“geht es um nur um EIN Eingabefeld. In meinem Fragebogen müssen die Teilnehmer aber 96 Aufgaben bearbeiten.

Könnten Sie mir sagen, ob mein Ansatz überhaupt so machbar ist? Und wie kann ich das mit dem Reagieren auf Klicks am Besten mit einbinden? (Hier dachte ich könnte ich den folgenden HTML-Code versuchen zu verwenden: https://www.soscisurvey.de/help/doku.php/de:create:dynamic)

Allerdings sind meine Künste im Programmieren nicht so ausgeprägt :D Ich schicke Ihnen deshalb mal einen Pretest Link zu der betroffenen Seite im Fragebogen, vielleicht können Sie sich damit das ganze etwas besser vorstellen:  https://www.soscisurvey.de/tutorial194465/?act=0ZcH5KdpshOKgoXrtzUEVaNS

Danke schonmal!
by SoSci Survey (302k points)
Ich befürchte, Sie müssen sich ein wenig ins Programmieren reinarbeiten - Auftragsprogrammierung mache ich im Online-Support in diesem Umfang nicht ;)

Der Code zum Zählen kann sicher verwendet werden um zu prüfen, ob in den Eingabefeldern etwas steht, ja.

Versuchen Sie es erstmal mit einem Eingabefeld zum Laufen zu bekommen (wenn Sie das dann in einer neuen Frage hier posten, kann ich bei Fragen gerne helfen). Wenn das klappt, dann legen Sie eine Liste aller Eingabefelder an und verwenden Sie eine FOR-Schleife, um den vorher programmierten Code für alle zu verwenden.

Prüfen Sie bei Zeiten aber bitte auch mal, ob der ganze Aufwand notwendig ist. Oder anders gefragt: Wäre es denn ein methodisches Problem, wenn jemand auf "Weiter" klickt, obwohl er/sie noch nicht alle Aufgaben gelöst hat?

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

...