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

Vielen, Vielen Dank für die rasche Antwort :-)!

Leider scheine ich noch etwas falsch zu machen.

Ich habe die interne Variable DI11 erstellt, diese auf die Fragebogenseite "gezogen" sowie geprüft ob mein Browser Javascript aktiviert hat.

Nichtsdestotrotz funktioniert der nachfolgende Code nicht.

<h2 id="clickHead">Introduction</h2>



<script type="text/javascript">
<!--

var header = document.getElementById("clickHead");
var intVar = document.getElementById("DI11_01");
intVar.value = "1";  // Auf jeden Fall speichern, dass JavaScript aktiv war

SoSciTools.attachEvent(header, "click", function() {
  intVar.value = "2"; // Code 2 = brav gelesen
  SoSciTools.submitPage();  // Und weiter zur nächsten Seite
});

// -->
</script>

Was mache ich falsch?

in SoSci Survey (dt.) by s081303 (150 points)
edited by s081303
Wenn Sie irgendwo um den Code noch das <script> stehen haben, dann kann ich zumindest spontan keinen Fehler im Code erkennen. Könnten Sie einmal den Anweisungen hier folgen, um den Fehler einzugrenzen: https://www.soscisurvey.de/help/doku.php/de:create:javascript#fehler_finden
Was genau meinen Sie mit "...um den Code noch das <script> stehen haben,..:"

Am Anfang des Codes steht <script> sowie am Ende </script>.
 
Wenn ich den Anweisen folge erhalte ich folgende Meldung "

?q=PC&admin&debug&page=1&l=eng:355

Uncaught SyntaxError: Unexpected token"

Hilgt Ihnen dies weiter?
Ein wenig ... können Sie auf einen Teil der Fehlermeldung (z.B. die Zeilennummer) klicken, um zu sehen, auf welche Zeile sich der Fehler bezieht? Wenn nicht, öffnen Sie den Fragebogen bitte einmal in Firefox  oder Chrome - da geht das.

Was das <script> angeht: Passt, genau das meinte ich. Sie hatten das <script> nur in Ihrer Antwort nicht mehr enthalten.
Die Fehlermeldung bezieht sich auf Zeile 355 "<script type="text/javascript">"
Würden Sie dann bitte Ihre Antwort oben nochmal editieren und den kompletten HTML-Code posten? Die Fehlermeldung deutet darauf hin, dass Sie ein "falsches" Anführungszeichen verwendet haben, also statt dem doppelten geraden Anführungszeichen (") z.B. zwei einfache ('') oder ein typografisches, falls Sie den Code z.B. mal nach Word kopiert haben (“).

Und bitte markieren Sie den Code auch und klicken Sie dann das Knöpfchen {}, damit der Code als Code formatiert wird. Danke.
Habe die Antwort noch mal editiert und den Code eingefügt :-)

1 Answer

0 votes

Die Fehlermeldung aus der JavaScript-konsole bezieht sich darauf, dass Sie das -Tag zweimal öffenen:

<script>
<script type="text/javascript">

Die erste Zeile muss jeweils raus bzw. der erste Script-Block kann komplett raus, beim zweiten muss das erste raus.

Aktualisierung

Damit das JavaScript auf die internen Variablen zugreifen kann, muss man die Frage DI11 (interne Variablen) auf die Seite ziehen. Und zwar muss sie über dem JavaScript stehen.

by SoSci Survey (76.1k points)
edited by SoSci Survey
Wieder vielen Dank für die rasche Anmerkung!

Habe den oben angeführten Code erneut angepasst - scheinbar habe ich Sie hier jedoch nicht ganz richtig verstanden.

Können Sie noch einmal drüber schauen?
Schwierig ohne Pretest-Link. Auf den ersten Blick sieht der JavaScript-Code korrekt aus. Was sagt denn die JavaScript Fehlerkonsole?
Die Fehlerkonsole sagt nun TypeError: intVar is null

Hier mal ein Prestestlink https://www.soscisurvey.de/lindench/?q=qnr2
Das hilft doch weiter: Es scheint so, dass die Kennung "DI11_01" nicht korrekt ist. Danke für den Pretest-Link. Dort ist u.a. zu erkennen, dass Sie im Impressum das Tag <body> verwenden, welches dort definitiv nichts zu suchen hat.

Die Frage DI11 müssten Sie bitte auch über dem JavaScript-Code auf die Seite ziehen, damit die entsprechenden versteckten Eingabefelder für JavaScript überhaupt zur Verfügung stehen.
Perfekt! Die Anordnung der einzelnen Funktionsblöcke war tatsächlich das Problem. Nachdem das Element D11 vor dem HTML Code steht, funktioniert dieser.

Vielen, vielen Dank für die Geduld!
...