0 votes
in SoSci Survey (dt.) by s090906 (150 points)

Liebes SoSci Survey Team,

im möchte als Attention Check meine Teilnehmer auf einer Seite meines Fragebogens bitten, auf die Überschrift zu klicken, anstatt auf den Next Button, um auf die nächste Seite zu gelangen. Lesen sie diese Info nicht und klicken deshalb auf den Next Button, möchte ich:
1) die Seite wiederholen
2) eine Fehlermeldung anzeigen
3) die Anzahl der Wiederholungen in einer Variable speichern.

Bisher habe ich meine Überschrift mit der Funktion eines Next-Buttons belegt:

    html('
  <button type = "submit" style="border:none; font-size: 24px; font-family: &quot;Arial Black&quot;">
    <span>Überschrift</span>
  </button>'
  );

Um die Seite zu wiederholen, meine Fehlermeldung anzuzeigen und die Anzahl der Klicks zu speichern habe ich folgendes versucht:

1) Den Standard-Code für den Next Button zu verändern:

$buttonNext = buttonCode('next');
$error = 0;

if (value($buttonNext) != 0) {
  $error += 1;
  put('Next_Check', $error);
  repeatPage('message');
}

2) Einen neuen Button mit den gewünschten Funktionen hinzufügen und den Standart-Button ausblenden:

// Hide next-Button -> funktioniert nicht, deaktiviert auch meine neuen Buttons
option('nextbutton', false);
// new next-Button
 html('
  <button type = "button" id = "next2">
    <span>Next</span>
  </button>'
  );

// Java Script:
<script type="text/javascript">
<!--
var count = 0;

function count_click() {
   count += 1;
  <?php
   put('Next_Check', count);
   repeatPage('message');
 ?>
}

window.onload = function () {
	document.getElementById("next2").onclick = count_click;
};
}
// -->
</script>

Leider funktioniert keine meiner Varianten... Könnt ihr mir weiterhelfen wie ich meinen Next-Button verändern kann?

Danke schonmal!!
Viele Grüße

1 Answer

0 votes
by SoSci Survey (304k points)
edited by SoSci Survey

Wir haben den Instructional Manipulation Check in ein paar Studien verwendet - dabei sind wir wie folgt vorgegangen:

Wie haben die Überschrift (oder ein DIV, das ein wenig größer und absolut positioniert mit) mit einem JavaScript-Handler versehen, der eine interne Variable setzt. Die Interne Variable (hier z.B. IV01) muss "in die Seite gezogen" werden - und zwar über den folgenden HTML/JavaScript-Code.

<h1 id="imcElement">Überschrift</h1>
<script type="text/javascript">
var imcElement = document.getElementById("imcElement");
var imcData = document.getElementById("IV01_01");  // Interne Variable
SoSciTools.attachEvent(imcElement, "click", function() {
  imcData.value = 2;
  SoSciTools.submitPage();
});
imcData.value = 1;
</script>

Hand des Werts von IV01_01 können Sie dann problemlos filtern. Die Vorbelegung mit dem Wert 1 erlaubt eine Erkennung, ob JavaScript überhaupt aktiv war.

Der PHP-Code zu Beginn der folgenden (!) Seite könnte dann etwa wie folgt aussehen:

if (value('IV01_01') == 1) {
  repeatPage('errorMessage');
}

Hier würde als Fehlermeldung der Textbaustein mit der Kennung "errorMessage" angezeigt werden.

Wenn es nicht auf Anhieb klappt: JavaScript im Fragebogen -> Fehler finden
Und für den Filter: Fragebogen-Probleme lösen

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

...