Liebes SosciSurvey Team
Vielen Dank für die Antwort.
Leider funktioniert es noch immer nicht ganz, da ich diese Funktion in Kombination mit dem Timer über mehrere Seiten verwenden möchte.
Im Fragebogenprojekt sind es acht Fragebogenseiten mit jeweils ca. 12 offenen Texteingaben. In jedes Textfeld kann immer nur ein Zeichen geschrieben werden. Der Cursor springt dann von Feld zu Feld. (Das soll die digitale "Digit-Symbol-Task" sein.)
Der Timer über mehrere Seiten funktioniert einwandfrei und auch der Cursor springt innerhalb einer Seite von Feld zu Feld. Nur das mit dem automatischen Weiter, nachdem das letzte Textfeld einer Seite beantwortet wurde (ein Zeichen), klappt noch nicht.
Den Code oben habe ich zum Timer hinzugefügt:
<script type="text/javascript">
<!--
// Funktion zur Weiterleitung
function weiter() {
// Eine Meldung anzeigen (optional)
alert("Die Zeit ist vorbei.");
// Den Teilnehmer zur nächsten Seite weiterleiten
SoSciTools.submitPage();
}
// Countdown anzeigen
var date0 = new Date();
var timeout = date0.getTime() + %remain% * 1000;
function updateCountdown() {
// Zeit berechnen
var date = new Date();
var time = Math.ceil((timeout - date.getTime() - 50) / 1000); // Verbleibende Zeit in Sekunden
// Zeit anzeigen
var out = document.getElementById("remain");
if (!out) {
return;
}
while (out.lastChild) {
out.removeChild(out.lastChild);
}
var minutes = Math.floor(time / 60);
var seconds = String(time - 60 * minutes);
if (seconds.length < 2) seconds = "0" + seconds;
var display = String(minutes) + ":" + seconds;
var displayNode = document.createTextNode(display);
out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
//Cursor
document.getElementById("DS01_01").focus();
// Weiter-Knopf ausblenden (optional)
//SoSciTools.submitButtonsHide();
// Zusätzlicher Timer für die Aktualisierung des Countdowns
window.setInterval(updateCountdown, 1000);
updateCountdown();
// Timer für automatische Weiterleitung starten
window.setTimeout(weiter, %remain% * 1000);
}
);
function jump(nr){
if(nr<10){
document.getElementById("DS0"+nr+"_01").focus();
}
else {
document.getElementById("DS"+nr+"_01").focus();
}
}
var input = document.getElementById("DS12_01");
SoSciTools.attachEvent(input, function() {
if (input.value != "") {
SoSciTools.submitPage();
}
});
// -->
</script>
Oder müsste ich den zusätzlichen Javascript Code am Ende der Seite hinschreiben?
Herzlichen Dank nochmals für die Hilfe.
Viele Grüße